楼主: 醉生梦
10740 11

[问答] R中get使用 [推广有奖]

  • 1关注
  • 18粉丝

教授

34%

还不是VIP/贵宾

-

威望
0
论坛币
949 个
通用积分
1.0615
学术水平
8 点
热心指数
10 点
信用等级
3 点
经验
59150 点
帖子
958
精华
0
在线时间
1594 小时
注册时间
2010-12-23
最后登录
2019-6-14

20论坛币
求助:
如果data<-data.frame(x,y,z)
get("data")可以获得data的值,但是如何用get获得data中x的值呢?
get("data $ x")不可以
这个题的主要目的是在data这个数据框中有很多变量时如x1,x2 ...x1000(实际中不是这么规则的),
怎么根据变量名构成的数组,
如t<-c("x4","x100","x200")(如果变量名不规则,在不搜索的前提下,当然不知道到底是在第几列),
如何通过类似于get(past("data$",t,sep="")) (这个语句不对)的语句获得对应的变量?


谢谢大家~


下面已经有了一种解决方案,如果有人有其他方法,大家还可以继续讨论啊~


最佳答案

yywan0913 查看完整内容

我觉得这样不就可以了?为什么要用get
关键词:Get Data

本帖被以下文库推荐

自助者天助之
沙发
yywan0913 在职认证  发表于 2014-6-19 19:59:16 |只看作者 |坛友微信交流群
  1. d=data.frame(x1=1:5,x2=2:6,x3=3:7,x5=4:8)

  2. t=c("x1","x3","x5")
  3. d[,t]
复制代码


我觉得这样不就可以了?为什么要用get
已有 1 人评分学术水平 热心指数 信用等级 收起 理由
醉生梦 + 5 + 5 + 5 精彩帖子

总评分: 学术水平 + 5  热心指数 + 5  信用等级 + 5   查看全部评分

使用道具

藤椅
yywan0913 在职认证  发表于 2014-6-19 21:20:42 |只看作者 |坛友微信交流群
传递吧。。   x=data$x

get("x")
已有 1 人评分热心指数 收起 理由
醉生梦 + 5 热心帮助其他会员

总评分: 热心指数 + 5   查看全部评分

使用道具

板凳
醉生梦 发表于 2014-6-19 21:36:30 |只看作者 |坛友微信交流群
yywan0913 发表于 2014-6-19 21:20
传递吧。。   x=data$x

get("x")
貌似不可以啊

使用道具

报纸
gssdzc 在职认证  发表于 2014-6-19 21:44:30 |只看作者 |坛友微信交流群
给顶起来
已有 1 人评分热心指数 收起 理由
醉生梦 + 5 热心帮助其他会员

总评分: 热心指数 + 5   查看全部评分

使用道具

地板
yywan0913 在职认证  发表于 2014-6-19 21:47:29 |只看作者 |坛友微信交流群
  1. data=data.frame(x1=1:3,x2=2:4,x3=3:5,x5=4:6)
  2. x1=data$x1;
  3. x2=data$x2;
  4. x5=data$x5
  5. get("x1");get("x5")

  6. get("data")$x1;
  7. get("data")$x2
复制代码
已有 1 人评分学术水平 热心指数 信用等级 收起 理由
醉生梦 + 5 + 5 + 5 热心帮助其他会员

总评分: 学术水平 + 5  热心指数 + 5  信用等级 + 5   查看全部评分

使用道具

7
醉生梦 发表于 2014-6-19 22:24:31 |只看作者 |坛友微信交流群
yywan0913 发表于 2014-6-19 21:47
这个确实可以取出x1这些,但是如果x1,x2,x5这些变量有很多个,并且每次都不是确定的,都用一个字符向量给出来,那这样就很麻烦了

使用道具

8
醉生梦 发表于 2014-6-19 23:35:39 |只看作者 |坛友微信交流群
yywan0913 发表于 2014-6-19 22:40
我觉得这样不就可以了?为什么要用get
是的,确实这样可以解决问题了

使用道具

9
yywan0913 在职认证  发表于 2014-6-20 08:47:33 |只看作者 |坛友微信交流群
醉生梦 发表于 2014-6-19 23:35
是的,确实这样可以解决问题了
  1. d=data.frame(x1=1:5,x2=2:6,x3=3:7,x5=4:8)
  2. t=c("x1","x3","x5")
  3. with(d,mget(t))
复制代码

get不支持向量形式输入,可以选择mget   with相当于attach,但比attach好。

另外,你指出的变量名规则,不知道在第几列的问题,  可以用match(t,colnames(d))  l
已有 2 人评分学术水平 热心指数 信用等级 收起 理由
jmpamao + 1 + 1 + 1 观点有启发
醉生梦 + 5 + 5 + 5 精彩帖子

总评分: 学术水平 + 6  热心指数 + 6  信用等级 + 6   查看全部评分

使用道具

10
醉生梦 发表于 2014-6-20 09:09:17 |只看作者 |坛友微信交流群
yywan0913 发表于 2014-6-20 08:47
get不支持向量形式输入,可以选择mget   with相当于attach,但比attach好。

另外,你指出的变量名规 ...
是的是的,这个结果更好,更具有推广性
已有 1 人评分论坛币 收起 理由
jiangbeilu + 10 鼓励积极发帖讨论

总评分: 论坛币 + 10   查看全部评分

使用道具

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-5-5 20:34