从R数据帧中提取和排序特定值
我对R很陌生,这可能是一个简单的答案,但仍然: 我在表格上有一个数据框从R数据帧中提取和排序特定值,r,dataframe,R,Dataframe,我对R很陌生,这可能是一个简单的答案,但仍然: 我在表格上有一个数据框 df <- data.frame(c("a", "b", "c", "d", "e"), 1:5, 7:11, stringsAsFactors=FALSE) names(df) <- c("en", "to", "tre") 等等 我怎样才能做到这一点呢?您可以使用包重塑2来融化数据并对值列进行排序,如下所示: require(reshape2) df <- data.frame(c("a", "b",
df <- data.frame(c("a", "b", "c", "d", "e"), 1:5, 7:11, stringsAsFactors=FALSE)
names(df) <- c("en", "to", "tre")
等等
我怎样才能做到这一点呢?您可以使用包
重塑2
来融化数据并对值列进行排序,如下所示:
require(reshape2)
df <- data.frame(c("a", "b", "c", "d", "e"), 1:5, 7:11, stringsAsFactors=FALSE)
names(df) <- c("en", "to", "tre")
df2 <- melt(df, id = "en")
## 'data.frame': 10 obs. of 3 variables:
## $ en : chr "a" "b" "c" "d" ...
## $ variable: Factor w/ 2 levels "to","tre": 1 1 1 1 1 2 2 2 2 2
## $ value : int 1 2 3 4 5 7 8 9 10 11
df2[order(df2$value, decreasing = TRUE), c("en", "value")]
## en value
## 10 e 11
## 9 d 10
## 8 c 9
## 7 b 8
## 6 a 7
## 5 e 5
## 4 d 4
## 3 c 3
## 2 b 2
## 1 a 1
require(重塑2)
df您可以使用包重塑2
来融化数据并对值列进行排序,如下所示:
require(reshape2)
df <- data.frame(c("a", "b", "c", "d", "e"), 1:5, 7:11, stringsAsFactors=FALSE)
names(df) <- c("en", "to", "tre")
df2 <- melt(df, id = "en")
## 'data.frame': 10 obs. of 3 variables:
## $ en : chr "a" "b" "c" "d" ...
## $ variable: Factor w/ 2 levels "to","tre": 1 1 1 1 1 2 2 2 2 2
## $ value : int 1 2 3 4 5 7 8 9 10 11
df2[order(df2$value, decreasing = TRUE), c("en", "value")]
## en value
## 10 e 11
## 9 d 10
## 8 c 9
## 7 b 8
## 6 a 7
## 5 e 5
## 4 d 4
## 3 c 3
## 2 b 2
## 1 a 1
require(重塑2)
df不太优雅,但没有额外的软件包(它可以处理任意数量的列):
col1不那么优雅,但是没有额外的包(它可以处理任意数量的列):
col1非常感谢你!我要试试这个。非常感谢你!我试试这个。
col1<-rep(df[,1],ncol(df)-1)
col2<-c()
for(i in 2:ncol(df)) {
col2<-c(col2,df[,i])
}
newdf<-data.frame(en=col1,value=col2)
newdf<-newdf[order(as.numeric(newdf[,2]),decreasing=TRUE),]