我在将大文本字符串转换为数据框时遇到问题。我一直无法弄清楚这个简单的任务。希望得到您的帮助。
x <- "1 apple 200 blueberry 3000 pear 4400 raspberry"
我想将其转换为如下所示的数据框:
id name
1 apple
200 blueberry
30000 pear
4400 raspberrry
最佳答案
我们可以使用 gsub
与 read.table
read.table(text=gsub("(?<=[a-z])\\s+", "\n", x, perl=TRUE),
header=FALSE, col.names = c("id", "name"))
# id name
#1 1 apple
#2 200 blueberry
#3 3000 pear
#4 4400 raspberry
或与
fread
library(data.table)
fread(gsub("(?<=[a-z])\\s+", "\n", x, perl=TRUE), col.names = c("id", "name"))
或者这也可以在没有
gsub
的情况下工作通过指定 col.names
与 read.table
read.table(text=x,col.names=c('ID','Name'))
# ID Name
#1 1 apple
#2 200 blueberry
#3 3000 pear
#4 4400 raspberry
关于R将大字符串转换为数据帧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41076240/