小编ste*_*bje的帖子

R:找到列总和最大的列

我想找到列总和最大的列.我想的是:

threeLargest = colnames(sort(colSums(data[,2:length(data)]), 
                        decreasing = TRUE)[1:3])
Run Code Online (Sandbox Code Playgroud)

colnames只是给出NULLsort(colSums...命令.

原因是我希望能够引用列中的值并绘制它.我认为必须有一个更多面向R的解决方案,而不是循环遍历列并保持最大的计数.

我有example_csv_file.csv:

date,column1,column2,column3,column4
2013-12-09,0,0,0,2
2013-12-10,0,0,0,2
2013-12-11,0,0,0,2
2013-12-12,0,0,0,2
2013-12-13,0,0,0,2
2013-12-14,0,1,7,2
2013-12-15,2,15,36,2
2013-12-16,5,10,28,2
2013-12-17,1,2,39,2
2013-12-18,2,3,34,2
Run Code Online (Sandbox Code Playgroud)

我以这种方式导入:

data = read.csv(file = 'example_csv_file.csv', header = TRUE, sep = ",")
Run Code Online (Sandbox Code Playgroud)

我可以按列总和对列进行排序,然后获取前三个:

threeLargest = sort(colSums(data[,2:length(data)]), decreasing = TRUE)[1:3]
Run Code Online (Sandbox Code Playgroud)

这给出了:

> threeLargest
column3 column2 column4 
    144      31      20 
Run Code Online (Sandbox Code Playgroud)

但我需要获取列名,因为我需要在绘制其值时引用列.就像这样:

plot(data[,'column3'])
Run Code Online (Sandbox Code Playgroud)

并且最好有一个我可以在循环中引用的顶部列表,如下所示:

plot(data[,namesOfThreeLargest[1]], type = 'n')
color = 1
for (column in namesOfThreeLargest)
{
  lines(data[,column], col = color)
  color = color + …
Run Code Online (Sandbox Code Playgroud)

csv sorting r

8
推荐指数
1
解决办法
3459
查看次数

标签 统计

csv ×1

r ×1

sorting ×1