我有一个 Dataframe ,看起来像这样(但〉10k行)。
df <- data.frame(id=1:2,
feature1=1:2,
feature2=4:5,
feature3=7:8)
并想把它重塑成这样的样子:
df_goal <- data.frame(value1=c(1,2,1,2,1,2),
value2=c(1,2,4,5,7,8),
x=c("feature1","feature1","feature1","feature1","feature1","feature1"),
y=c("feature1","feature1","feature2","feature2","feature3","feature3"))
df_goal
只是我希望实现的最终df的一个子集,最终我希望得到feature1
、feature2
和feature3
的每一个组合以及相应的值。
我想使用生成的df进行ggplot。
我认为应该有一个直接的tidyr
解决方案来解决我的问题,但我似乎找不到它。
任何帮助都是非常感谢!
3条答案
按热度按时间fhg3lkii1#
这里有一个起点:
pivot
数据集,然后计算combn
选项(unnest
和asplit
只是为了最终使其成为 Dataframe )。要获取剩余的行,可以执行以下操作:
那么,总而言之:
rjzwgtxy2#
可能是透视、重命名和
full_join
Dataframe 到其自身的情况?这似乎与您上面提供的输出数据集的六行匹配-这是您要查找的吗?
uqxowvwt3#
或者,请检查以下代码
创建于2023年2月3日,使用reprex v2.0.2