簡體   English   中英

用R中的舊數據填充新數據幀

[英]Populating new data frame with old data in R

嗨,集體智慧。 這是交易-我有一個看起來像這樣的數據框:

>df

Mom MomAge 
aa  1
aa  3
aa  4
bb  2
bb  4
cc  1
cc  3
cc  5

每行都是XX歲媽媽XX歲時生的孩子。 我想填充一個新的數據框,將每個數據從1到5歲的現有數據編碼為二進制響應(1 = X媽媽出生的孩子,0 = X媽媽出生的孩子):

    1  2  3  4  5
aa  1  0  1  1  0    
bb  0  1  0  1  0
cc  1  0  1  0  1

到目前為止,我有這個:

>momlist<-unique(df$Mom)
>M<-matrix(data = NA, nrow = length(Mom), ncol=5)
>M<-data.frame(M)
>rownames(M) <-momlist
>colnames(M) <-c(1:5)
>M
   1  2  3  4  5
aa NA NA NA NA NA 
bb NA NA NA NA NA
cc NA NA NA NA NA

不知道如何填充M ...也許是if / then然后是for循環? 提前謝謝了!

您可以通過轉動你的數據dcastreshape2 ,並提供一個函數返回(而不是默認的總和)1或0。

設定數據

txt <- "Mom, MomAge 
aa,  1
aa,  3
aa,  4
bb,  2
bb,  4
cc,  1
cc,  3
cc,  5"

df <- read.csv(text = txt, header = TRUE)

樞軸數據

library(reshape2)
dcast(df, Mom ~ MomAge, fill=0, function(x){ x>0 })

  Mom 1 2 3 4 5
1  aa 1 0 1 1 0
2  bb 0 1 0 1 0
3  cc 1 0 1 0 1

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM