R 将字符串列表转换为数据帧,同时spiling字符串以形成colname和值

R 将字符串列表转换为数据帧,同时spiling字符串以形成colname和值,r,R,我有一个包含标签名称和值的字符串列表 the_list <- c('label1\":15', 'label2\":2', 'label3\":0', 'label4\":1', 'label5\":2') u列表我们可以使用strsplit在“和:,以及rbind将列表元素添加到矩阵。然后将第二列转换为列表,用第一列设置lsit元素的名称,并转换为数据帧 m1 <- do.call(rbind, strsplit(the_list, '":')) data.frame(setNa

我有一个包含标签名称和值的字符串列表

the_list <- c('label1\":15', 'label2\":2', 'label3\":0', 'label4\":1', 'label5\":2')

u列表我们可以使用
strsplit
,以及
rbind
列表
元素添加到
矩阵
。然后将第二列转换为
列表
,用第一列设置
lsit
元素的名称,并转换为
数据帧

m1 <- do.call(rbind, strsplit(the_list, '":'))
data.frame(setNames(as.list(as.integer(m1[,2])), m1[,1]))
#  label1 label2 label3 label4 label5
#1     15      2      0      1      2

m1我们可以使用
strsplit
处拆分,
rbind
列表
元素转换为
矩阵
。然后将第二列转换为
列表
,用第一列设置
lsit
元素的名称,并转换为
数据。frame

m1 <- do.call(rbind, strsplit(the_list, '":'))
data.frame(setNames(as.list(as.integer(m1[,2])), m1[,1]))
#  label1 label2 label3 label4 label5
#1     15      2      0      1      2

m1在这种特殊情况下,
read.dcf
可以提供帮助:

read.dcf(textConnection(the_list))
#      label1" label2" label3" label4" label5"
# [1,] "15"    "2"     "0"     "1"     "2"    

另一方面,考虑使用标准<代码> DATA .Frase<代码>来存储分割数据。这里有“TidiValm”和“SPLITSTACKFILE”包的选项:

或者,只需使用命名向量:

setNames(as.numeric(sub(".*:", "", the_list)), sub("\".*", "", the_list))
# label1 label2 label3 label4 label5 
#     15      2      0      1      2 

在这种特殊情况下,
read.dcf
可以提供帮助:

read.dcf(textConnection(the_list))
#      label1" label2" label3" label4" label5"
# [1,] "15"    "2"     "0"     "1"     "2"    

另一方面,考虑使用标准<代码> DATA .Frase<代码>来存储分割数据。这里有“TidiValm”和“SPLITSTACKFILE”包的选项:

或者,只需使用命名向量:

setNames(as.numeric(sub(".*:", "", the_list)), sub("\".*", "", the_list))
# label1 label2 label3 label4 label5 
#     15      2      0      1      2 

很好的选择this@akrun,谢谢。根据OP的实际需求,我不确定它会有多强大。我也在考虑您使用的类似方法。
fread(粘贴(gsub(“,”,the_list),collapse='\n'),sep=“:”
this@akrun谢谢根据OP的实际需求,我不确定它的健壮性。我也在考虑您使用的类似方法<代码>fread(粘贴(gsub(“”,“,”,_列表),折叠=“\n”),sep=“:”