gpt4 book ai didi

r - 将字符串转换为数据框,包括列名

转载 作者:行者123 更新时间:2023-12-04 12:13:49 28 4
gpt4 key购买 nike

我有一个字符串,它的结构和长度可以不断变化,那就是

输入:

X <- ("A=12&B=15&C=15")
Y <- ("A=12&B=15&C=15&D=32&E=53")

我正在寻找这个字符串转换为数据框

预期输出:

数据框 X
 A  B  C
12 15 15

和数据框 Y
 A  B  C  D  E
12 15 15 32 53

我累的是这个:
X <- as.data.frame(strsplit(X, split="&"))

但这对我不起作用,因为它只创建了一个列并且列名被弄乱了。

P.S:我不能对列名进行硬编码,因为它们可能会有所不同,并且在任何给定时间一个字符串将只包含一行

最佳答案

一种选择是从字符串中提取数字部分,然后用 read.table 读取它。 .图案[^0-9]+表示一个或多个不是数字的字符,并在第一个 gsub 中用空格替换它,阅读使用 read.table ,并在 col.names 中指定列名通过删除所有不是大写字母的字符获得的值的参数(第二个 gsub )

f1 <- function(str1){
read.table(text=gsub("[^0-9]+", " ", str1),
col.names = scan(text=trimws(gsub("[^A-Z]+", " ", str1)),
what = "", sep=" ", quiet=TRUE))
}

f1(X)
# A B C
#1 12 15 15
f1(Y)
# A B C D E
#1 12 15 15 32 53

关于r - 将字符串转换为数据框,包括列名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40500753/

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