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=“:”