5340 8

[问答] 关于R语言的数据处理 [推广有奖]

  • 0关注
  • 1粉丝

已卖:5份资源

博士生

80%

还不是VIP/贵宾

-

威望
0
论坛币
842 个
通用积分
0.0004
学术水平
5 点
热心指数
5 点
信用等级
6 点
经验
5905 点
帖子
149
精华
0
在线时间
532 小时
注册时间
2012-10-15
最后登录
2025-11-11

楼主
愤怒的小鸟! 发表于 2015-7-8 22:05:32 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
请教下两个问题:1,如何用R求出一列数据中排除NA和0值后的均值,也就是把他们排除后求均值                             2,如何将一列数据中的0赋值为空值
谢谢啦
二维码

扫码加我 拉你入群

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

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

关键词:数据处理 R语言 如何用 如何

沙发
wangluan 发表于 2015-7-8 22:49:20
第一问:如何用R求出一列数据中排除NA和0值后的均值,也就是把他们排除后求均值
  1. > a = c(0:9,NA);a
  2. [1]  0  1  2  3  4  5  6  7  8  9 NA
  3. > mean(a,na.rm=TRUE) #除去NA
  4. [1] 4.5
  5. > mean(a[which(a!=0)],na.rm=TRUE) #除去0和NA
  6. [1] 5
复制代码

第二问将一列数据中的0赋值为空值
首先要说明,数值数列中没有空值,只有NA,Inf,NaN三种,分别代表缺失值,无限值(例如1/0)和错误值(例如0/0)
而字符串数列中有NA,''两种
最后数据替换的代码如下
  1. > a = c(0:9,NA);a
  2. [1]  0  1  2  3  4  5  6  7  8  9 NA
  3. > a[a==0]<-NA
  4. > a
  5. [1] NA   1   2   3   4   5   6   7   8   9  NA
复制代码
已有 1 人评分经验 论坛币 收起 理由
李会超 + 60 + 10 热心帮助其他会员

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

藤椅
愤怒的小鸟! 发表于 2015-7-8 22:56:03
wangluan 发表于 2015-7-8 22:49
第一问:如何用R求出一列数据中排除NA和0值后的均值,也就是把他们排除后求均值

第二问将一列数据中的0 ...
非常感谢,又学到新东西了

板凳
愤怒的小鸟! 发表于 2015-7-8 23:06:58
wangluan 发表于 2015-7-8 22:49
第一问:如何用R求出一列数据中排除NA和0值后的均值,也就是把他们排除后求均值

第二问将一列数据中的0 ...
如果我要对数据框的每列求相同要求的均值,应该怎么写,我只知道用apply函数求普通列平均值,但不知道如何求排除NA和0值后的均值

报纸
wangluan 发表于 2015-7-9 00:26:25
自己试验一下吧
  1. a <- matrix(rnorm(100,0,1),nrow=10) #10*10随机矩阵
  2. a[1,] <- 0  #矩阵第1行赋值为0
  3. a[10,] <- NA #矩阵第10行赋值为NA
  4. mean(a[,1],na.rm=TRUE) #第1列剔除NA求平均
  5. apply(a, 2, mean,na.rm = TRUE)  #剔除NA按列求平均值

  6. mean(a[which(a[,1]!=0),1],na.rm=TRUE) #第1列剔除0和NA求平均
  7. #剔除0的方法1
  8. #将为0的元素替换为NA,再按列求平均
  9. a1 <- a
  10. a1[which(a1==0)] <- NA
  11. apply(a1, 2, mean,na.rm = TRUE)  #按列求平均值
  12. #剔除0的方法2
  13. #设计求平均的列函数,带入到apply中
  14. a2 <- a
  15. f_mean <- function(x){mean(x[which(x!=0)],na.rm=TRUE)} #除去0和NA
  16. apply(a2, 2, f_mean)  #按列求平均值
复制代码
已有 1 人评分经验 论坛币 收起 理由
李会超 + 100 + 20 精彩帖子

总评分: 经验 + 100  论坛币 + 20   查看全部评分

地板
愤怒的小鸟! 发表于 2015-7-9 02:19:41
wangluan 发表于 2015-7-9 00:26
自己试验一下吧
怒赞

7
tyaer 发表于 2015-7-17 20:17:53
@wangluan 你学R多长时间了 佩服啊

8
kamaduoluo 发表于 2015-7-18 10:29:20

9
08jlhq 发表于 2016-10-25 13:32:40
wangluan 发表于 2015-7-9 00:26
自己试验一下吧
学习了,太牛了

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-4 01:17