使用 R 重塑数据
Posted
技术标签:
【中文标题】使用 R 重塑数据【英文标题】:Reshape Data using R 【发布时间】:2016-07-12 08:16:00 【问题描述】:我是 R 新手,我有如下数据
NAME
----
Balachandra
Sunita
Kali
Jagmeet
我想把它做成
NAME1 NAME2
-----------------------
Balachandra Balachandra
Balachandra Sunita
Balachandra Kali
Balachandra Jagmeet
Sunita Balachandra
Sunita Sunita
Sunita Kali
Sunita Jagmeet
Kali Balachandra
Kali Sunita
Kali Kali
Kali Jagmeet
Jagmeet Balachandra
Jagmeet Sunita
Jagmeet Kali
Jagmeet Jagmeet
拥有所有可能的名称组合
知道怎么做吗?
【问题讨论】:
请勿以图片形式发布您的数据,请了解如何提供reproducible example 当然,我会确保不将数据添加为图像 【参考方案1】:我们可以使用expand.grid
expand.grid(NAME1=df1$NAME, NAME = df1$NAME)[2:1]
# NAME NAME1
#1 Balachandra Balachandra
#2 Balachandra Sunita
#3 Balachandra Kali
#4 Balachandra Jagmeet
#5 Sunita Balachandra
#6 Sunita Sunita
#7 Sunita Kali
#8 Sunita Jagmeet
#9 Kali Balachandra
#10 Kali Sunita
#11 Kali Kali
#12 Kali Jagmeet
#13 Jagmeet Balachandra
#14 Jagmeet Sunita
#15 Jagmeet Kali
#16 Jagmeet Jagmeet
或使用CJ
来自data.table
library(data.table)
setDT(df1, key = "Name")[CJ(Name, Name)]
数据
df1 <- data.frame(NAME = c("Balachandra", "Sunita", "Kali",
"Jagmeet"), stringsAsFactors=FALSE)
【讨论】:
谢谢@akrun...这就是我要找的...但是[2:1] 在expand.grid 中是什么意思? @Vinay 我只是在重新排列列。因此,2:1 将获得第二列第 1 列和第 1 列第 2 列,以匹配您的预期输出以上是关于使用 R 重塑数据的主要内容,如果未能解决你的问题,请参考以下文章