首页 > 解决方案 > 如何使用 `%>%` 更改一列值?

问题描述

set.seed(1)
df<-data.frame(Q1 = sample(c("y", NA), 10, replace = T, prob = c(1/2, 1/2)), 
               Q2 = sample(c("y", NA), 10, replace = T, prob = c(2/3, 1/3)), 
               Q3 = sample(c("y", NA), 10, replace = T, prob = c(1/3, 2/3)))
> df
     Q1   Q2   Q3
1  <NA>    y    y
2  <NA>    y <NA>
3     y <NA> <NA>
4     y    y <NA>
5  <NA> <NA> <NA>
6     y    y <NA>
7     y <NA> <NA>
8     y <NA> <NA>
9     y    y    y
10 <NA> <NA> <NA>

我想NA在列中更改Q20,预期结果如下:

> df
     Q1   Q2   Q3
1  <NA>    y    y
2  <NA>    y <NA>
3     y   0  <NA>
4     y    y <NA>
5  <NA>   0  <NA>
6     y    y <NA>
7     y   0  <NA>
8     y   0  <NA>
9     y    y    y
10 <NA>   0  <NA>

然后我尝试了:

> df %>% .[is.na(.[,'Q2'])]<-0L
Error in df %>% .[is.na(.[, "Q2"])] <- 0L : 
  could not find function "%>%<-"
> df %>% `.[is.na(.[,'Q2'])]`<-0L
Error in df %>% `.[is.na(.[,'Q2'])]` <- 0L : 
  could not find function "%>%<-"
> df %>% `.[is.na(.[,'Q2'])]<-`0L
Error: unexpected numeric constant in "df %>% `.[is.na(.[,'Q2'])]<-`0L"

怎么做?

标签: r

解决方案


推荐阅读