gpt4 book ai didi

r - R 中的数据操作 : 'X' must be atomic

转载 作者:行者123 更新时间:2023-12-02 15:02:11 25 4
gpt4 key购买 nike

我使用以下命令导入了一个在多列中包含标题和数字的文件。 irs_data <- read.csv(file="10incyallnoagi.csv")

我想将 1 列中的值除以另一列中的值,然后确定最高的 3 个值。

     salary_var <- c(irs_data[13]/irs_data[12])
head(sort(new_var, decreasing=TRUE), 3)

我不断收到错误消息。作为R的初学者,在这种情况下“x必须是原子的”是什么意思。

Error in sort.int(x, na.last = na.last, decreasing = decreasing, ...) : 
'x' must be atomic

最佳答案

问题是 salary_var 是一个包含单个元素的列表。然后,对 sort() 的调用尝试对列表进行排序,而不是对原子元素进行排序。通过运行 str(salary_var) 可以看到 salary_var 是一个列表。如果省略 c(),您最终会得到一个只有单列的数据框,这会产生相同的问题。

两个简单的解决方案:

要对列表元素中的值进行排序,请使用

head(sort(salary_var[[1]], decreasing=TRUE), 3) 

其中 [[1]] 选择列表的第一个元素并对其中的值进行排序。

或者,显式创建 salary_var 作为数值向量:

salary_var <- (irs_data[13]/irs_data[12])[[1]]

注意一点:在您的帖子中,您在调用 sort() 时编写了 new_var 而不是 salary_var,这可能会让其他读者感到困惑。

关于r - R 中的数据操作 : 'X' must be atomic,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26247429/

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