df = data.frame(A=c(1,1),B=c(2,2))
df$C = NA
df[is.na(df$B),]$C=5
每当我想影响一个新值并且发现像这里is.na(df$B)
那样空的索引时,R raise引发错误replacement has 1 row, data has 0
。
有没有一种方法R在这种情况下不会影响任何事情,而不是引发错误?
答案 0 :(得分:2)
我们可以在一行中执行此操作,而不是将“C”分配给NA
,然后对data.frame进行子集化。以下代码会将5分配给“C”,其中“B”中有NA
个元素,否则它将为NA
df$C[is.na(df$B)] <- 5