R 如何在数据帧上反转聚合命令?
如果要转换以下data.frame:R 如何在数据帧上反转聚合命令?,r,R,如果要转换以下data.frame: >M name ID a 1 b,c 2 d,e 3 f 4 对于这一点: >M name ID a 1 b 2 c 2 d 3 e 3 f 4 如何对第一列的所有元素进行此转换 谢谢您可以从tidyr使用unnest(): library(dplyr); library(tidyr) mutate(M, n
>M
name ID
a 1
b,c 2
d,e 3
f 4
对于这一点:
>M
name ID
a 1
b 2
c 2
d 3
e 3
f 4
如何对第一列的所有元素进行此转换
谢谢您可以从tidyr
使用unnest()
:
library(dplyr); library(tidyr)
mutate(M, name = strsplit(name, ",")) %>% unnest(name)
Source: local data frame [6 x 2]
ID name
(chr) (chr)
1 1 a
2 2 b
3 2 c
4 3 d
5 3 e
6 4 f
您可以从tidyr
使用unnest()
:
library(dplyr); library(tidyr)
mutate(M, name = strsplit(name, ",")) %>% unnest(name)
Source: local data frame [6 x 2]
ID name
(chr) (chr)
1 1 a
2 2 b
3 2 c
4 3 d
5 3 e
6 4 f
下面是一个基本的R解决方案:
# split the names into a list
nameList <- strsplit(df$name, split=",")
# get your new data.frame
newdf <- data.frame(names=unlist(nameList), ID=rep(df$ID, sapply(nameList, length)))
输出
> newdf
names ID
1 a 1
2 b 2
3 c 2
4 d 3
5 e 3
6 f 4
下面是一个基本的R解决方案:
# split the names into a list
nameList <- strsplit(df$name, split=",")
# get your new data.frame
newdf <- data.frame(names=unlist(nameList), ID=rep(df$ID, sapply(nameList, length)))
输出
> newdf
names ID
1 a 1
2 b 2
3 c 2
4 d 3
5 e 3
6 f 4
, , , ,