Nerda
March 28, 2020, 12:43am
1
Hi,
I am new on R (transitioning from Stata). I would like to the simplest loop ever and I somehow can't amke it work. I would like to drop three vairables from my data card using the for loop command. My code:
for(v in c("weight", "expersq", "lwage")) {
card$v<-NULL
}
but it does not work... no variables are drop from card. What am I doing wrong?
Please see the FAQ: What's a reproducible example (`reprex`) and how do I do one? Using a reprex, complete with representative data will attract quicker and more answers.
Let's use the built in dataset mtcars
to illustrate an easier way to do this using the dplyr
package to remove the wt
, qsec
and vs
variables.
suppressPackageStartupMessages(library(dplyr))
head(mtcars)
#> mpg cyl disp hp drat wt qsec vs am gear carb
#> Mazda RX4 21.0 6 160 110 3.90 2.620 16.46 0 1 4 4
#> Mazda RX4 Wag 21.0 6 160 110 3.90 2.875 17.02 0 1 4 4
#> Datsun 710 22.8 4 108 93 3.85 2.320 18.61 1 1 4 1
#> Hornet 4 Drive 21.4 6 258 110 3.08 3.215 19.44 1 0 3 1
#> Hornet Sportabout 18.7 8 360 175 3.15 3.440 17.02 0 0 3 2
#> Valiant 18.1 6 225 105 2.76 3.460 20.22 1 0 3 1
mtcars %>% select(-wt,-qsec,-vs) %>% head
#> mpg cyl disp hp drat am gear carb
#> Mazda RX4 21.0 6 160 110 3.90 1 4 4
#> Mazda RX4 Wag 21.0 6 160 110 3.90 1 4 4
#> Datsun 710 22.8 4 108 93 3.85 1 4 1
#> Hornet 4 Drive 21.4 6 258 110 3.08 0 3 1
#> Hornet Sportabout 18.7 8 360 175 3.15 0 3 2
#> Valiant 18.1 6 225 105 2.76 0 3 1
Created on 2020-03-27 by the reprex package (v0.3.0)
Just a little syntax mistake
for(v in c("weight", "expersq", "lwage")) {
card[[v]] <-NULL
}
Nerda
March 30, 2020, 4:49pm
4
Thanks. Could you explain why card$v would not work? And why card[v] actually works? What is the difference between these three syntax?
Thanks again
system
Closed
April 20, 2020, 4:57pm
5
This topic was automatically closed 21 days after the last reply. New replies are no longer allowed.