警告消息:1:R中未知或未初始化的列

问题描述 投票:0回答:1

我有这样的

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'。

这可能是什么原因?

谢谢。

r dataframe data-manipulation
1个回答
0
投票

我建议以下内容:

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]

© www.soinside.com 2019 - 2024. All rights reserved.