我有这样的dataframe,
AID=c("9671608","9671618","9677162")
dep=c(23,45,12)
t8=c(1,0,2)
a1_sum=c(2,10,1)
dataall=data.frame(AID,dep,t8,a1_sum)
> dataall
AID dep t8 a1_sum
1 9671608 23 1 2
2 9671618 45 0 10
3 9677162 12 2 1
我如下修改了第二行的a1_sum
的值,
dataall$a1_sum[dataall$AID=="9671618"]=1
我成功完成了,但是我收到以下警告消息,即使有时我运行与该数据相关的其他代码如下:
警告消息:1:未知或未初始化的列:'a1_sum'。
这可能是什么原因?
谢谢。
我建议以下内容:
EDIT:@ r2evans,正确地指出,当只有一种情况时,最好使用if_else
而不是case_when
:
library(dplyr)
dataall <- dataall %>% dplyr::mutate(a1_sum = dplyr::if_else(AID == "9671618", 1, a1_sum)
或data.table
解决方案:
library(data.table)
dataall <- data.table::setDT(dataall)
dataall[AID =="9671618", a1_sum := 1]