首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >按组重新设置列选择的值

按组重新设置列选择的值
EN

Stack Overflow用户
提问于 2020-06-23 06:32:02
回答 1查看 30关注 0票数 1

我有这样的数据:

代码语言:javascript
运行
复制
data_in <- read_table2("condition   Q11_1   Q11_2   Q11_3   Q11_4   Q11_5   Q11_6   Q11_7   Q11_8   Q11_9   Q11_10  Q11_11  Q11_12  Q11_13
1   2   5   5   2   5   5   5   5   2   5   5   2   2
0   1   1   1   2   2   5   5   5   1   2   2   2   1
1   6   5   6   6   6   6   5   6   5   6   6   6   6
0   6   6   6   6   6   6   6   6   6   6   6   6   6
1   5   6   6   6   6   6   6   6   6   6   6   6   5
1   6   6   6   6   6   6   6   6   5   5   6   6   5
")

我有一系列变量(来自调查),其值为(1,2,5,6)。我想要将一组特定变量的值从5更改为3,将6更改为4。在本例中,我只包含了我有兴趣更改的变量Q11_1:Q11_13。还有大约100个其他变量我没有包含在示例中。我也希望这个在condition==1的时候也能应用。

我知道我可以这样做来更改所有包含Q11的列:

代码语言:javascript
运行
复制
survey %>% 
  mutate(across(contains("Q11"),.fns = ~ case_when(.x == 5 ~ 3,
                                                   .x == 6 ~ 4,
                                                   TRUE ~ .x)))

现在,我想重新计算所有包含Q11并具有condition==1的列的值。如果row==0的条件不变,我不希望这些列被更改。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-06-23 06:34:17

我们可以在case_when中使用&

代码语言:javascript
运行
复制
library(dplyr)
data_in %>% 
  mutate(across(starts_with('Q11'), ~ 
     case_when(. == 5 & condition == 1 ~ 3, 
               . == 6 & condition == 6 ~ 4, TRUE ~ .)))
# A tibble: 6 x 14
#  condition Q11_1 Q11_2 Q11_3 Q11_4 Q11_5 Q11_6 Q11_7 Q11_8 Q11_9 Q11_10 Q11_11 Q11_12 Q11_13
#      <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>  <dbl>  <dbl>  <dbl>  <dbl>
#1         1     2     3     3     2     3     3     3     3     2      3      3      2      2
#2         0     1     1     1     2     2     5     5     5     1      2      2      2      1
#3         1     6     3     6     6     6     6     3     6     3      6      6      6      6
#4         0     6     6     6     6     6     6     6     6     6      6      6      6      6
#5         1     3     6     6     6     6     6     6     6     6      6      6      6      3
#6         1     6     6     6     6     6     6     6     6     3      3      6      6      3
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62524529

复制
相关文章

相似问题

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