R转换字符串<;列表>;列出
我正在从文件导入一列。该列使用collect_list函数形成。因此,每个条目如下所示:R转换字符串<;列表>;列出,r,string,list,file-read,R,String,List,File Read,我正在从文件导入一列。该列使用collect_list函数形成。因此,每个条目如下所示: [1,5,10] [27,30,1,33,40] [1,2,8,20,30,50,...] 我试图将这列读入R,并将每一行转换为一个列表。当我阅读时,表格的每一行都有一个字符串: "[1,5,10]" 我应该怎么做才能将此列读入列表?谢谢 您想使用stringr包中的stru-split。如果df是您的数据帧,data是变量名: library("stringr") df$data = gsub(pat
[1,5,10]
[27,30,1,33,40]
[1,2,8,20,30,50,...]
我试图将这列读入R,并将每一行转换为一个列表。当我阅读时,表格的每一行都有一个字符串:
"[1,5,10]"
我应该怎么做才能将此列读入列表?谢谢 您想使用
stringr
包中的stru-split
。如果df
是您的数据帧,data
是变量名:
library("stringr")
df$data = gsub(pattern = "(\\[|\\])", replacement = "", x = df$x)
list = str_split(string = df$data, pattern = ",")
不确定您的确切想法,但如果您将数据导入 data.frame并希望有一列包含列表值,您可以使用
strsplit
:
dd = structure(list(x = c("[1,5,10]", "[27,30,1,33,40]", "[1,2,8,20,30,50]")), .Names = c("x"), class = "data.frame", row.names = 1:3)
dd$y = strsplit(gsub('\\[|\\]', '', dd$x), ",")
如果希望dd$y
具有数字数据,也可以使用:
dd$y = lapply(strsplit(gsub('\\[|\\]', '', dd$x), ","), as.numeric)
输出:
> str(dd)
'data.frame': 3 obs. of 2 variables:
$ x: chr "[1,5,10]" "[27,30,1,33,40]" "[1,2,8,20,30,50]"
$ y:List of 3
..$ : num 1 5 10
..$ : num 27 30 1 33 40
..$ : num 1 2 8 20 30 50
这是一种有效的JSON流,可以这样导入:
text$:int[1:3]1 5 10
#>$:int[1:5]273013340
#>$:int[1:6]12 8 20 30 50