我有一个具有以下结构的数据集:
df <- data.frame(mult=c(1,2,3,4),red=c(1,0.9,0.8,0.7),
result=c('value1','value2','value3','value4'))
我想在三维图中显示(x轴:多轴,y轴:红色,x-y点将是'结果')或多个二维图。显然,真正的DF有更多的行和多重和红色的组合。
专栏&amp; amp;红色没有重复的值。我想要的是将DF重塑为DF1:
- 1 0.9 0.8 0.7
1 value1
2 value2
3 value3
4 .....
基本上是这样的:
1)[mult]值保持原样(第1列)
2)[red]值成为列名。
3)'mult'和'red'之间的每个交叉都是一个值
新DF
我的偏好是使用 reshape 功能执行此操作,但其他包也可以。
提前致谢,p。
答案 0 :(得分:5)
尝试
gui.__controllers[0].__select.selectedOptions[0].value
答案 1 :(得分:2)
以下是使用tidyr
library(tidyr)
out = rev(spread(df[-1], red, result))
out[is.na(out)] = ''
#> out
# 1 0.9 0.8 0.7
#1 value1
#2 value2
#3 value3
#4 value4
答案 2 :(得分:1)
按要求使用重塑
df <- data.frame(mult=c(1,2,3,4),red=c(1,0.9,0.8,0.7),
result=c('value1','value2','value3','value4'))
df$result = as.character(df$result)
dfWide = reshape(data = df, idvar = "mult", timevar = "red", v.names = "result", direction = "wide")
rownames(dfWide) = dfWide$mult
dfWide$mult = NULL
colnames(dfWide) = gsub(pattern = "result.", replacement = "", colnames(dfWide) )
dfWide[is.na(dfWide)] = ''
dfWide
# 1 0.9 0.8 0.7
# 1 value1
# 2 value2
# 3 value3
# 4 value4