我有一个数据集(已从.json文件导入),目前看起来像这样:
ID <- c(1)
Name <- c("John")
Name.1 <- c("Irene")
Address <- c("1 Brick Lane")
Address.1 <- c("2 Wood Street")
df <- data.frame(ID, Name, Name.1, Address, Address.1)
ID | Name | Address | Name.1 | Address.1
------ | ------| ------ | ------ | ------
1 | John | 1 Brick Lane | Irene | 2 Wood Street
但是,我想操纵它看起来像这样:
ID <- c(1)
Name <- c("John", "Irene")
Address <- c("1 Brick Lane", "2 Wood Street")
df <- data.frame(ID, Name, Address)
ID | Name | Address
------ | ------| ------
1 | John | 1 Brick Lane
1 | Irene | 2 Wood Street
此外,并非所有人都拥有相同的信息字段。例如,John的出生日期可能在数据中,但Irene不是。
在我的实际数据集中,最终数据框中将有大约30个不同的列。非常感谢您的帮助!
答案 0 :(得分:0)
我们可以使用来自melt
的{{1}},data.table
可以采用多种measure
模式
library(data.table)
melt(setDT(df), measure = patterns("^Name", "^Address"),
value.name = c("Name", "Address"))[, variable := NULL][]
# ID Name Address
#1: 1 John 1 Brick Lane
#2: 1 Irene 2 Wood Street