【发布时间】:2018-07-10 00:29:19
【问题描述】:
非常简单的概念。我有一个数据框 df 并且想从一列中从最大值到最小值对其进行排序,然后在新表中获取前两列。但我似乎遇到了一个小问题。
df<-df[-order(df$col2),]
但我得到的错误是“闭包”类型的对象不是子集。
理论上,一旦我对数据进行了排序,我将使用 cbind 拉出我需要的两列并放入一个新的数据框中。我能做的就这么多。
示例:
v2<-c(1,2,3,4,5,6)
v1<-c('A','B','C','D','E','F')
v3<-c(11,12,12.5,11.5,11.75,13)
df<-cbind(v1,v2,v3)
colnames(df)<-c("Number","Letter","Age")
输出:
df
6 F
5 E
4 D
3 C
2 B
1 A
【问题讨论】:
-
能否在代码标签示例中添加示例输入示例和预期输出示例?
-
已经完成了
-
或者绑定列时使用
df <- cbind.data.frame(v1, v2, v2);您还交换了Number和Letter列。 -
-order(df$col2)或order(-df$col2)? -
df <- data.frame(Letter = v1, Number = v2, Age = v3);然后df[order(df$Number, decreasing = T), ]