2016-09-20 93 views
-4

到匯聚我有了唯一標識符,如下面轉換單個數據集R中

Questionnaire id Age 
Q1      40 
Q1      1 
Q1      7 
Q2      40 
Q2      70 
Q2      30 
Q3      8 
Q3      7 
Q3      4 

我想創建一個與年齡,如「0-4歲」分類變量的數據集,「5 - 14年「,」15-60年「和」61歲以上「。 然後生成一個新的變量,它顯示了這樣的數據彙總(彙總)的數據看起來就像是

0-4 years 5-14 years 15-60 years 61 and above years 
Q1 1    1    1    0 
Q2 0    1    1    1 
Q3 1    2    0    0 
+1

使用'cut'然後'dcast'或'table'。 – Roland

回答

1

你可以這樣做:

df$range <- as.vector(cut(df$Age, c(0,4,14,60,Inf) 
       , labels = c("0-4", "5-14","15-60","61 and above"))) 
xtabs(~id+range,df) 

    # range 
# id 0-4 15-60 5-14 61 and above 
    # Q1 1  1 1   0 
    # Q2 0  2 0   1 
    # Q3 1  0 2   0 

數據

df <- data.frame(id=c("Q1","Q1","Q1","Q2","Q2","Q2","Q3","Q3","Q3") 
     ,Age=c(40,1,7,40,70,30,8,7,4),stringsAsFactors = F)