【发布时间】:2021-03-28 18:52:07
【问题描述】:
我有一个如下所示的字符串:
# character string
string <- "lambs: cows: 281 chickens: 20 goats: 3 trees: 13"
我想创建一个如下所示的数据框:
# structure
lambs <- NA
cows <- 281
chickens <- 20
goats <- 3
trees <- 13
# dataframe
df <-
cbind(lambs, cows, chickens, goats, trees) %>%
as.data.frame()
这是我迄今为止尝试过的:
# split string
test <- strsplit(string, " ")
test
数据很不干净,所以间距并不总是一致的,有时有羔羊,有时没有羔羊(如:"lamb: 5 cow: 50" 和 "lamb: cow: 40"。使用 tidyverse 最简单的方法是什么? ?
【问题讨论】:
-
它是一个固定宽度的文件吗?数据最初是如何变得如此混乱的?您需要对数据做出一些强有力的假设才能导入它。但是只有一个示例行,很难判断会发生什么。
-
另一个:
read.table(text = gsub('\\b(?=[A-z])', '\n', string, perl = TRUE), sep = ':')
标签: r string dplyr split tidyverse