Helo
I have a dataframe whose names are similar and I would like to change
the rows containing given values simultaneously.
I can select the columns using library(dplyr) but I can't modify the data:
```
library(dplyr)
> df <- data.frame(var1 = c(letters[1:3], letters[1:4]),
+                 var2 = c(LETTERS[1:7]),
+                 var3 = c(letters[1:3], letters[1:4]),
+                 var4 = (1:7)^2,
+                 var5 = c("light", "light", "heavy", "heavy", "heavy",
+                          "light", "heavy"),
+                 stringsAsFactors = FALSE); df
  var1 var2 var3 var4  var5
1    a    A    a    1 light
2    b    B    b    4 light
3    c    C    c    9 heavy
4    a    D    a   16 heavy
5    b    E    b   25 heavy
6    c    F    c   36 light
7    d    G    d   49 heavy
> select(df, matches("var[123]"))
  var1 var2 var3
1    a    A    a
2    b    B    b
3    c    C    c
4    a    D    a
5    b    E    b
6    c    F    c
7    d    G    d
> df[[select(df, matches("var[123]")) == "a"]] <- "z"
Error in `[[<-`(`*tmp*`, i, value = value) :
  recursive indexing failed at level 2
> df[[select(df, contains("var1")) == "a"]] <- "z"
Error in `[[<-`(`*tmp*`, i, value = value) :
  recursive indexing failed at level 2
```
If I sue which, I get a wrong substitution :
```
> df[which(select(df, matches("var[123]")) == "a"), ] <- "z"; df
   var1 var2 var3 var4  var5
1     z    z    z    z     z
2     b    B    b    4 light
3     c    C    c    9 heavy
4     z    z    z    z     z
5     b    E    b   25 heavy
6     c    F    c   36 light
7     d    G    d   49 heavy
8  <NA> <NA> <NA> <NA>  <NA>
9  <NA> <NA> <NA> <NA>  <NA>
10 <NA> <NA> <NA> <NA>  <NA>
11 <NA> <NA> <NA> <NA>  <NA>
12 <NA> <NA> <NA> <NA>  <NA>
13 <NA> <NA> <NA> <NA>  <NA>
14 <NA> <NA> <NA> <NA>  <NA>
15    z    z    z    z     z
16 <NA> <NA> <NA> <NA>  <NA>
17 <NA> <NA> <NA> <NA>  <NA>
18    z    z    z    z     z
```

what is the correct syntax?
Thank you

-- 
Best regards,
Luigi

______________________________________________
R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to