所以,col's 和 prob's 可以被认为是一个包;它们是在一起的,例如,col2“与”prob2“相伴”。
我怎样才能做到这样,如果 col
中的一个单元格是 <NA>
,prob
与之对应的也将替换为 <NA>
?
数据:
col2 prob2 col3 prob3 col4 prob4 col5 prob5
2 0.126269620610401 <NA> 0.979143074247986 <NA> 0.150689669651911 <NA> 0.11148908524774
3 0.730431054253131 <NA> 0.826114872703329 <NA> 0.368350319797173 <NA> 0.299717969959602
2 0.320544729940593 3 0.0434977798722684 4 0.859434255165979 11 0.150506388396025
2 0.0354198240675032 3 0.240764779038727 5 0.276169682852924 <NA> 0.0449998050462455
目标:
col2 prob2 col3 prob3 col4 prob4 col5 prob5
2 0.126269620610401 <NA> <NA> <NA> 0.150689669651911 <NA> <NA>
3 0.730431054253131 <NA> <NA> <NA> 0.368350319797173 <NA> <NA>
2 0.320544729940593 3 0.0434977798722684 4 0.859434255165979 11 0.150506388396025
2 0.0354198240675032 3 0.240764779038727 5 0.276169682852924 <NA> <NA>
最佳答案
你可以使用 is.na.data.frame
创建 is.na<-
使用的结果“NA-out”“prob”列中的相应值:
is.na(dat[ , grep("prob", colnames(dat)) ]) <- is.na(dat[ , grep("col", colnames(dat)) ])
#------------------
> dat
col2 prob2 col3 prob3 col4 prob4 col5 prob5
1 2 0.12626962 <NA> NA <NA> NA <NA> NA
2 3 0.73043105 <NA> NA <NA> NA <NA> NA
3 2 0.32054473 3 0.04349778 4 0.8594343 11 0.1505064
4 2 0.03541982 3 0.24076478 5 0.2761697 <NA> NA
请注意,这使用了您的控制台输出,并且它作为任何“<NA>
-包含”列作为因子列出现。这可能是您的 ?col? 变量的问题,因为带有 NA 的真实数值向量不会显示为 <NA>
关于r - 有条件地将一列替换为另一列 (R),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30553247/