R将大字符串转换为数据帧

标签 r string dataframe

我在将大文本字符串转换为数据框时遇到问题。我一直无法弄清楚这个简单的任务。希望得到您的帮助。

x <- "1 apple 200 blueberry 3000 pear 4400 raspberry"

我想将其转换为如下所示的数据框:
id    name
1     apple
200   blueberry
30000 pear
4400  raspberrry

最佳答案

我们可以使用 gsubread.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.namesread.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/

相关文章:

python - Pandas 从多行创建链接对

r - 更高效的 .RData?

function - R 中的内置函数通常是否经过优化?

R 申请 : loses dimname names

将字符串转换为数组然后再返回时的 Javascript 问题

java - 创建带有形式参数的方法来设置值和返回字符串的方法

python - pandas 数据框用 nan 填充缺失的行

r - 如何在 SQLite 数据库中存储 R 对象(列表)?

c++ - 如何在不复制的情况下使用 std::string?

python - Pandas 数据帧 : difference between all dates for each unique id