3 r
这是我的情况.我有一个我用它创建的对象read.spss.
> a <- read.spss(...)
> attach(a)
Run Code Online (Sandbox Code Playgroud)
现在,在这个对象a中,我想提出一系列问题,这些问题遵循一系列问题编号:
> q3 <- data.frame(q3_1, q3_2, q3_4, ... q3_27)
Run Code Online (Sandbox Code Playgroud)
有没有办法自动化它,从而q3_将从原始对象开始的所有问题都提取到新的q3 data.frame?
我试过使用这个paste功能无济于事.
> q3 <- data.frame(paste("q3_",1:27,sep=""))
Run Code Online (Sandbox Code Playgroud)
只返回data.frame带有粘贴序列的a.
理想情况下,我希望从一个问题开始,从一些问题开始qX_,因为某些价值观缺失或过时.
其中的可能性是grep,match和%in%.这是一个解决方案grep:
R> foo <- data.frame(q1_1=1:4, q1_2=11:14, q2_1=21:24, q2_2=31:34, q3_1=41:44, q3_2=51:54)
R> colnames(foo)
[1] "q1_1" "q1_2" "q2_1" "q2_2" "q3_1" "q3_2"
R> grep("q3_", colnames(foo))
[1] 5 6
R> q3 <- foo[, grep("q3_", colnames(foo))]
R> q3
q3_1 q3_2
1 41 51
2 42 52
3 43 53
4 44 54
R>
Run Code Online (Sandbox Code Playgroud)