[英]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.