【发布时间】:2020-07-09 07:51:26
【问题描述】:
我有一个这样的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'。
这可能是什么原因?
谢谢。
【问题讨论】:
-
al_sum与a1_sum不同。检查您的代码,看看您在哪里输入了小写字母l而不是数字1。 -
@r2evans - 这段代码的棘手之处之一是
dataall$AID=="9671618"用于对向量进行子集化,dataall$a1_sum[],而不是数据框。 -
废话,你说得对……阅读不完整。 (它看起来仍然是一个由拼写错误引起的问题。)
-
@LenGreski 感谢您的评论。这段代码实际上是我为演示我的实际问题而开发的可重现代码。似乎没有你提到的错字。另外我认为这个问题可能是由于我对数据进行子集化的方式。除了我的方法之外,还有更有效的方法吗?
-
在做
dataall$a1_sum[dataall$AID=="9671618"]=1之前你真的设置了a1_sum这个列吗?这有时会导致问题check this link. Appart 我看不出你的代码有什么问题。
标签: dataframe r dataframe data-manipulation