gpt4 book ai didi

r - 使用与列同名的变量对数据框进行子集化

转载 作者:行者123 更新时间:2023-12-02 02:22:17 24 4
gpt4 key购买 nike

我有一个数据框,我正在尝试在其上运行一个子集。在我的数据框中,我有一个名为“开始”的列,我正在尝试这样做:

sub <- subset(data,data$start==14)

我正确地得到了 start=14 的所有行的子集。

但是,当我这样做时:
for(start in seq(1,20,by=1)) {
sub <- subset(data,data$start==start)
print(sub)
}

它没有正确找到子集。它只是打印整个数据框。

这是为什么,我该如何解决?

最佳答案

修复它很容易。只需重命名您的 for将计数器或您的数据框列循环到 start 以外的其他内容.

它发生的原因是因为subset正在尝试计算表达式 data$start == start数据框内data .所以它看到列start并停在那里,从未看到另一个变量 start您在 for 中定义环形。

或许更深入地了解 R 为何会在此处混淆的原因是,在使用 subset 时要注意。您通常不需要使用 data$ 来引用变量.所以想象一下告诉R:

subset(data,start == start)

R 只会评估这两个 start里面 data并获得所有 TRUE 的向量回来了

关于r - 使用与列同名的变量对数据框进行子集化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7572400/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com