我正在一个项目中,我们从Blob存储中导入了数据。数据存储为一个巨型字符串。
列之间用逗号分隔,行之间用此字符“ \ r \”分隔
如何将其设为数据框?
以下是数据示例:
X1,X2,X3,X4,X5,\r\yes,yes,no,no,yes,\r\yes,yes,yes,no,yes
,它在数据框中应如下所示:
X1 X2 X3 X4 X5
1 yes yes no no yes
2 yes yes yes no yes
提前谢谢!
答案 0 :(得分:0)
第一步是用换行符,\r\
替换\n
。但是,您应该注意,在下面的示例中,由于\
是R中的转义字符,因此我必须使用双反斜杠。请在您的实时示例中根据需要进行修改,但是无论哪种方法都可以。
x = 'X1,X2,X3,X4,X5,\\r\\yes,yes,no,no,yes,\\r\\yes,yes,yes,no,yes'
x = gsub(',\\r\\', '\n', x, fixed=TRUE)
> read.csv(text=x)
X1 X2 X3 X4 X5
1 yes yes no no yes
2 yes yes yes no yes
答案 1 :(得分:0)
我们可以使用read.table
来读取单个字符串数据。假设\
被转义,用sep=","
读取后,使用sub
将\
替换为""
out <- read.table(text = str1, sep=",", fill = TRUE,
header = TRUE, stringsAsFactors = FALSE)[-6]
out$X1 <- sub("[\\]", "", out$X1)
out
# X1 X2 X3 X4 X5
#1 yes yes no no yes
#2 yes yes yes no yes
str1 <- "X1,X2,X3,X4,X5,\r\\yes,yes,no,no,yes,\r\\yes,yes,yes,no,yes"