【发布时间】:2019-05-02 11:25:39
【问题描述】:
我在使用 R 时遇到了一个奇怪的问题。我有一个包含多个变量的数据框。我在这个数据框中添加了一个包含下划线的变量,例如:
allres$tmp_weighted <- allres$day * allres$area
在我这样做之前,R 告诉我变量 allres$tmp 不存在(这是正确的)。但是,在我将allres$tmp_weighted 添加到数据框并调用allres$tmp 后,我得到了allres$tmp_weighted 的数据。似乎下划线后面的部分对 R 来说根本不重要。我用其他几个变量/名称尝试过它,它总是这样工作
我认为这不应该像这样工作吗?我在这里忽略了什么吗?下面我将一些代码与控制台的输出一起粘贴。
# first check whether variable exists
allres_sw$Ndpsw
> NULL
#define new variable with underscore in variable name
allres_sw$Ndpsw_weighted <- allres_sw$Ndepswcrit * allres_sw$Area
#check again whether variable exists
allres_sw$Ndpsw
> [1] 17.96480 217.50240 44.84415 42.14560 0.00000 43.14444 53.98650 9.81939 0.00000 110.67720
# this is the output that I would expect from "Ndpsw_weighted" - and indeed do get
allres_sw$Ndpsw_weighted
> [1] 17.96480 217.50240 44.84415 42.14560 0.00000 43.14444 53.98650 9.81939 0.00000 110.67720
【问题讨论】:
-
我和你的第一个问题有同样的问题 - R 没有读取整个变量名,它在下划线处停止,然后抱怨变量不存在(这是真的)。你解决了吗?
-
嗨,西蒙,这听起来像是一个不同的问题 - 在我的情况下,R 从来没有不识别变量的问题,只是它识别了 i> 根据变量名称的一部分识别变量(这是我没想到的行为,但在使用 $ 运算符时是可以预料到的,如下面的 Will 所述。)
标签: r variables variable-names