R 如何创建名为“的第三列”;重量“;基于其他列的值?当列值为NA时,将指定0权重
我在一个数据框中有4列,基于这2列,需要创建权重的第5列。当列值为NA时,将指定0权重 假设我在R中有一个叫做exp的数据帧R 如何创建名为“的第三列”;重量“;基于其他列的值?当列值为NA时,将指定0权重,r,dplyr,calculated-columns,R,Dplyr,Calculated Columns,我在一个数据框中有4列,基于这2列,需要创建权重的第5列。当列值为NA时,将指定0权重 假设我在R中有一个叫做exp的数据帧 from to tel post 1 S01 S02 123 ABC 2 S02 S03 456 <NA> 3 S04 S05 NA XYZ from到tel post 1 S01 S02 123 ABC 2 S02 S03 456 3 S04 S05 NA XYZ 我需要创建以下权重列。 其中重量=10*(电话)+1*(邮政) 如果该值
from to tel post
1 S01 S02 123 ABC
2 S02 S03 456 <NA>
3 S04 S05 NA XYZ
from到tel post
1 S01 S02 123 ABC
2 S02 S03 456
3 S04 S05 NA XYZ
我需要创建以下权重列。
其中重量=10*(电话)+1*(邮政)
如果该值为NA,则为零
from to tel post weight
1 S01 S02 123 ABC 11
2 S02 S03 456 <NA> 10
3 S04 S05 NA XYZ 1
from到tel-post重量
1 S01 S02 123 ABC 11
2 S02 S03 456 10
3 S04 S05 NA XYZ 1
您可以执行以下操作:
with(df, (10 * !is.na(tel)) + (1 * !is.na(post)))
[1] 11 10 1
样本数据:
df <- read.table(text = " from to tel post
1 S01 S02 123 ABC
2 S02 S03 456 <NA>
3 S04 S05 NA XYZ",
header = TRUE,
stringsAsFactors = FALSE,
na.strings = c("NA", "<NA>"))
df