我有两个数据帧。一个有nunbers,一个有状态(TRUE或FALSE)。
df1<-data.frame(A=c(14,25,37),B=c(12,45,23),C=c(65,29,67))
df2<-data.frame(A=c('FALSE','TRUE','TRUE'),B=c('TRUE','FALSE','FALSE'),C=c('TRUE','TRUE','FALSE'))
如果df2为TRUE,我想将值从df1复制到df2。
df3<-data.frame(A=c('FALSE',25,37),B=c(12,'FALSE','FALSE'),C=c(65,29,'FALSE'))
谢谢
答案 0 :(得分:1)
这是一个选项:
df3 <- df2
df3[df3 == 'TRUE'] <- df1[df3 == 'TRUE']
df3
A B C
1 FALSE 12 65
2 25 FALSE 29
3 37 FALSE FALSE
注意:要使上述代码逐字处理,我必须略微更改df2
的定义以使用stringsAsFactors=FALSE
。仅使用字符数据,可以轻松检查'TRUE'
。