gpt4 book ai didi

r - r中连接字符串的数据透视表

转载 作者:行者123 更新时间:2023-12-04 23:55:44 24 4
gpt4 key购买 nike

我有以下数据集:

mydata<- data.frame(Factors= c("a,b" , "c,d" , "a,c"), Valu = c ("2,3" , "7,8" , "9,1"))



Factors Valu
1 a,b 2,3
2 c,d 7,8
3 a,c 9,1

并且我希望转换为以下具有与一个因素发生的所有值的以下内容:

我的理想输出

a   b  c  d
2 2 7 7
3 3 8 8
9 9
1 1

我需要一个数据透视表。但是我需要准备数据,然后使用 meltdcast 得到我想要的输出:准备数据的失败尝试之一是:

mydata2 <- cSplit(mydata, c("Factors","Valu") , ",", "long")

但是他们失去了联系。

最佳答案

这是一个带有cSplit

的单行代码
library(splitstackshape)
with(cSplit(cSplit(mydata, 1, ",", "long"), 2, ",", "long"), split(Valu, Factors))
#$a
#[1] 2 3 9 1

#$b
#[1] 2 3

#$c
#[1] 7 8 9 1

#$d
#[1] 7 8

如果我们需要一个data.table/data.frame,使用dcast将'long'格式转换为'wide'。

dcast(cSplit(cSplit(mydata, 1, ",", "long"), 2, ",", "long"), 
rowid(Factors)~Factors, value.var="Valu")[, Factors := NULL][]
# a b c d
#1: 2 2 7 7
#2: 3 3 8 8
#3: 9 NA 9 NA
#4: 1 NA 1 NA

注意:splitstackshape 加载data.table。在这里,我们使用了 data.table_1.10.0data.table 中的dcast 也很fast

关于r - r中连接字符串的数据透视表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41093136/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com