首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >自动从对象中提取多变量

自动从对象中提取多变量
EN

Stack Overflow用户
提问于 2009-09-13 23:42:28
回答 3查看 165关注 0票数 3

这是我的情况。我有一个使用read.spss创建的对象。

代码语言:javascript
运行
复制
> a <- read.spss(...)
> attach(a)

现在,在这个对象中,a是我想要提取的一组问题,它跟在一系列问题编号之后:

代码语言:javascript
运行
复制
> q3 <- data.frame(q3_1, q3_2, q3_4, ... q3_27)

有没有一种方法可以自动将所有以q3_开头的问题从原始对象中拉出到新的q3 data.frame

我尝试过使用paste函数,但是没有用。

代码语言:javascript
运行
复制
> q3 <- data.frame(paste("q3_",1:27,sep=""))

这只会返回一个带有粘贴序列的data.frame

理想情况下,我希望能够从以qX_开头的问题中提取所有内容,因为某些值丢失或过时。

EN

回答 3

Stack Overflow用户

发布于 2009-09-13 23:55:21

其中可能的是grepmatch%in%。这是一个使用grep的解决方案

代码语言:javascript
运行
复制
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> 
票数 5
EN

Stack Overflow用户

发布于 2009-09-13 23:57:05

代码语言:javascript
运行
复制
q3 <- a[,grep("q3_",colnames(a))]
票数 2
EN

Stack Overflow用户

发布于 2009-09-14 19:19:13

我会做一些类似这样的事情:

q3 <- data.frame(a[paste('q3_',1:27,sep='')])

如果你愿意(如果'a‘中没有名为’a‘的元素),你仍然可以使用attach(a),但是没有必要。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1419136

复制
相关文章

相似问题

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