繁体   English   中英

来自字符向量内容的R数据帧

[英]R data frame from contents of a character vector

我正在使用长字符向量,其中每行应该包含一个小数据帧。 我创建了一个函数来清理数据并生成一个字符串,该字符串可以随时输入到data.frame()函数中。 输出如下:

[1] "`demo/members/education_member` = c('High_school', 'High_school'), `demo/members/status` = c('Other', 'Other'), `demo/members/name` = c('Hans Solo', 'Luke Skywalker')"

我想将此输出传递给data.frame()以获得以下数据帧(由于复制并粘贴了上面未引用的输出并将其传递给data.frame函数而data.frame ):

  demo.members.education_member demo.members.status demo.members.name
1                   High_school               Other         Hans Solo
2                   High_school               Other    Luke Skywalker

问题 :将字符输出的内容转换为R数据帧的最佳方法是什么?

这是重申我的意见的一种方法-可能会有更好的方法将原始数据转换为清理的数据框。

x <- "`demo/members/education_member` = c('High_school', 'High_school'), `demo/members/status` = c('Other', 'Other'), `demo/members/name` = c('Hans Solo', 'Luke Skywalker')"

y <- paste0("data.frame(", x, ")")

eval(parse(text = y))

demo.members.education_member demo.members.status demo.members.name
1                   High_school               Other         Hans Solo
2                   High_school               Other    Luke Skywalker

如果可以将data.frame()函数添加到字符串中,则可以使用这种方法。 如果没有通知我,我将删除。 这有点rlang ,并且使用了rlang但是您可以通过不使用base eval而不是找出rlang准引用的东西来使它更好。

x <- "data.frame(
  'demomemberseducationmember' = c('High_school','High_school'), 
  'demomembersstatus' = c('Other', 'Other'), 
  'demmembersname' = c('Hans Solo', 'Luke Skywalker'))"
eval(rlang::parse_expr(x))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM