R 中的数据操作:“X”必须是原子的

2024-01-08

我使用以下命令导入了一个在多列中包含标题和数字的文件。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()然后尝试对列表而不是原子元素进行排序。你可以看到salary_var是一个运行列表str(salary_var)。如果您省略c(),您最终会得到一个只有一列的数据框,这会带来同样的问题。

两个简单的解决方案:

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

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

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

或者,创建salary_var显式地作为数值向量来代替:

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

请注意:在您的帖子中,您写道new_var代替salary_var在你的电话中sort()这可能会让其他读者感到困惑。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

R 中的数据操作:“X”必须是原子的 的相关文章

随机推荐