我认为这个例子会更直接:
实现以下目标的优雅方式是什么?
有:
#it doesn't work with 1 line
ggplot(df,aes(x,y))+geom_point()+
facet_wrap(~f1.+f2,labeller=labeller(f1.=label_parsed,.multi_line=F))
和
DF <- data.frame(V1=c(2,8,1),V2=c(7,3,5),V3=c(9,6,4))
我想获得如下数据框:
1:&#34; V2 V3&#34; #为7和9
2:&#34; V1 V3&#34; #为8和6
3:&#34; V2 V3&#34; #为5和4
答案 0 :(得分:2)
我不知道它是否足够优雅,但这应该有效:
DF <- data.frame(V1=c(2,8,1),V2=c(7,3,5),V3=c(9,6,4))
k <- 2
mx <- t(apply(DF,1,function(x)names(DF)[sort(head(order(x,decreasing=TRUE),k))]))
> mx
[,1] [,2]
[1,] "V2" "V3"
[2,] "V1" "V3"
[3,] "V2" "V3"
注意:mx
是一个矩阵,但您可以使用as.data.frame(mx)
轻松获取data.frame