R 将一列中的字符串转换为多列
我的数据集如下所示:R 将一列中的字符串转换为多列,r,dataframe,dataset,plyr,R,Dataframe,Dataset,Plyr,我的数据集如下所示: "Fruit","Allocation" apple,Anna:1|Bob:2|Chloe:3 banana,Anna:3|Bob:2|Chloe:1 我想将其转换为如下所示: "Fruit","Anna","Bob","Chloe" apple,1,2,3 banana,3,2,1 将数据集转换为R中所需输出的最简单方法是什么?我们可以使用tidyverse实现这一点。通过在|处拆分“分配”列,使用单独的_行从“宽”转换为“长”,然后在sep=:处将“分配”列
"Fruit","Allocation"
apple,Anna:1|Bob:2|Chloe:3
banana,Anna:3|Bob:2|Chloe:1
我想将其转换为如下所示:
"Fruit","Anna","Bob","Chloe"
apple,1,2,3
banana,3,2,1
将数据集转换为R中所需输出的最简单方法是什么?我们可以使用tidyverse实现这一点。通过在|处拆分“分配”列,使用单独的_行从“宽”转换为“长”,然后在sep=:处将“分配”列拆分为两列“名称”、“编号”,并从“长”扩展到“宽”
library(tidyverse)
separate_rows(df1, Allocation, sep="[|]") %>%
separate(Allocation, into = c("Name", "Number")) %>%
spread(Name, Number)
# Fruit Anna Bob Chloe
#1 apple 1 2 3
#2 banana 3 2 1
数据
df1 <- structure(list(Fruit = c("apple", "banana"), Allocation = c("Anna:1|Bob:2|Chloe:3",
"Anna:3|Bob:2|Chloe:1")), .Names = c("Fruit", "Allocation"),
class = "data.frame", row.names = c(NA, -2L))