楼主: qqgetup
6542 15

[问答] R新手问题:怎样取一个subset再求平均值或最大值 [推广有奖]

  • 0关注
  • 0粉丝

已卖:3份资源

大专生

50%

还不是VIP/贵宾

-

威望
0
论坛币
134 个
通用积分
0.5124
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
3484 点
帖子
57
精华
0
在线时间
49 小时
注册时间
2007-10-15
最后登录
2016-5-22

楼主
qqgetup 发表于 2015-8-12 03:46:01 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
刚开始自学R,有很多傻问题,请教大家。

比如说一个xyz数据库里3个variables,求x>3, y>5时,z的平均值,应该怎么写啊?

同理比如说求x=5,y=3时,z的最大值,应该怎样算呢?

对了,这过程中NA用额外手动去掉么?还是计算时R会自动去掉?

多谢赐教啦!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:Subset subs UBS 求平均 SUB 平均值 最大值 数据库

回帖推荐

qoiqpwqr 发表于8楼  查看完整内容

如果有NA,要手动去掉,

沙发
qqgetup 发表于 2015-8-12 03:50:26
想得美 发表于 2015-8-12 03:47
哥顶的不是帖子,是寂寞!
555,还以为这么快有人来解答。。。

藤椅
亚米UM 发表于 2015-8-12 07:11:42 来自手机
qqgetup 发表于 2015-8-12 03:46
刚开始自学R,有很多傻问题,请教大家。

比如说一个xyz数据库里3个variables,求x>3, y>5时,z的平均值, ...
不会自动去除NA的 你可以写一个循环提取z然后计算均值

板凳
qqgetup 发表于 2015-8-12 07:20:13
亚米UM 发表于 2015-8-12 07:11
不会自动去除NA的 你可以写一个循环提取z然后计算均值
谢谢你,亚米UM!那我就用complete cases去掉NA吧。。。
另外非常新的新手很不好意思的问一下,什么叫做“写一个循环提取z“?
怎么写才能提取那个subset同时满足x和y呢?能具体告诉我么?谢谢!

报纸
亚米UM 发表于 2015-8-12 09:52:46
亚米UM 发表于 2015-8-12 07:11
不会自动去除NA的 你可以写一个循环提取z然后计算均值
比如你的矩阵为x,是一个T*3的矩阵,三列分别为x,y,z,那么写一个for循环
z = 0;
for(i in n)
{
  if(x[i,1] >3 && x[i,2] > 5)
    z = cbind(z,x[,3]
}
这里提取出来的z第一个数之后的数就是满足条件的z了
最后返回的就是满足条件的z了

地板
bianleleren 学生认证  发表于 2015-8-12 13:43:26
不懂帮顶

7
qoiqpwqr 发表于 2015-8-12 13:52:26
  1. mean(dat$z[(dat$x > 3) & (dat$y > 5)])
复制代码


如果有NA,要手动去掉,
  1. mean(dat$z[(dat$x > 3) & (dat$y > 5)], na.rm = TRUE)
复制代码

8
hzx21th 发表于 2015-8-12 21:51:23
可以嵌套两个subset也可以用楼上的办法

9
qqgetup 发表于 2015-8-12 23:23:10
亚米UM 发表于 2015-8-12 09:52
比如你的矩阵为x,是一个T*3的矩阵,三列分别为x,y,z,那么写一个for循环
z = 0;
for(i in n)
谢谢你
for loop我还没学到,正好看看是怎么回事儿:)
这里的z = cbind(z,x[,3])的目的是什么呢?
不好意思,刚刚开始学,太多都不懂了。。。

10
qqgetup 发表于 2015-8-12 23:35:31
qoiqpwqr 发表于 2015-8-12 13:52
如果有NA,要手动去掉,
谢谢你qoiqpwqr,这个看着好简单耶
不要笑我,不过请问其中的dat是什么意思呢?

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-30 22:13