首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >refer:行+变异(+胶水)-如何获得/引用行内容?

refer:行+变异(+胶水)-如何获得/引用行内容?
EN

Stack Overflow用户
提问于 2018-09-19 09:58:35
回答 1查看 884关注 0票数 1

输入数据的简单示例:

代码语言:javascript
复制
dataset <- data.frame("part1" = c("a", "b", "c"),
                       "part2" = c("x", "y", "z"),
                       "caption" = c("{part1} {part2}",
                                     "{part2} {part1}",
                                     "{part2} {part1} {part2}"),
                       stringsAsFactors = F)

预期成果:

代码语言:javascript
复制
# A tibble: 3 x 3
  part1 part2 caption
  <chr> <chr> <chr>  
1 a     x     a x    
2 b     y     y b    
3 c     z     z c z  

以下代码无法工作,因为.引用的是整个dataset,而不是整个行内容的数据:

代码语言:javascript
复制
dataset %>%
  rowwise() %>%
  mutate("caption" =
           glue::glue_data(., caption)
         )

问题:如何将行(所有)内容传递给glue

工作代码(明确声明的“内容”行)不是我一直在寻找的代码,因为我的数据集中有更多在caption“模式”中使用的列,因此我希望避免手动声明它,只需传递整个行内容。

代码语言:javascript
复制
dataset %>%
  rowwise() %>%
  mutate("caption" =
           glue::glue_data(
             list("part1" =  part1,
                  "part2" = part2)
             , caption)
  )
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-09-19 10:27:43

它的工作原理很简单:

代码语言:javascript
复制
dataset %>% rowwise %>% mutate(r=as.character(glue(caption)))
#Source: local data frame [3 x 4]
#Groups: <by row>

## A tibble: 3 x 4
#  part1 part2 caption                 r    
#  <chr> <chr> <chr>                   <chr>
#1 a     x     {part1} {part2}         a x  
#2 b     y     {part2} {part1}         y b  
#3 c     z     {part2} {part1} {part2} z c z

注意:我添加as.character只是为了避免似乎与rowwise(Vectorizing 'glue' elements may not preserve their attributes)有关的警告。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52403164

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档