根据R中的其他值向列添加值

时间:2016-06-13 11:43:41

标签: r data-manipulation

我有一个看起来像这样的数据集

ID   d1   d2   
1    G    G
2    A    G
3    A    A
4    G    A
5    NA   NA
6    G    G

我想根据d1和d2

的值添加另一列
ID   d1   d2    new  
1    G    G     GG
2    A    G     AG
3    A    A     AA
4    G    A     GA   
5    NA   NA    NA
6    G    G     GG

3 个答案:

答案 0 :(得分:1)

我们可以使用paste

df1$new <- with(df1, ifelse(is.na(d1)|is.na(d2), NA, paste0(d1, d2)))
df1$new
#[1] "GG" "AG" "AA" "GA" NA   "GG"

答案 1 :(得分:0)

df <- within(df,new <- paste(d1,d2,sep=""))

df$new <-replace(df$new,df$new%in%"NANA",NA)

  id   d1   d2  new
1  1    G    G   GG
2  2    A    G   AG
3  3    A    A   AA
4  4    G    A   GA
5  5 <NA> <NA> <NA>
6  6    G    G   GG

如果要从数据中删除NA行,可以使用

df <- within(subset(df,!is.na(d1)&!is.na(d2)),new <- paste(d1,d2,sep=""))


  id d1 d2 new
1  1  G  G  GG
2  2  A  G  AG
3  3  A  A  AA
4  4  G  A  GA
6  6  G  G  GG

答案 2 :(得分:0)

您还可以尝试使用mutate包中的dplyr功能。