楼主: godrats
18748 5

[问答] 如何对一个data.frame中的inf值进行统一处理? [推广有奖]

  • 0关注
  • 0粉丝

大专生

23%

还不是VIP/贵宾

-

威望
0
论坛币
10 个
通用积分
0.0004
学术水平
1 点
热心指数
1 点
信用等级
1 点
经验
485 点
帖子
22
精华
0
在线时间
56 小时
注册时间
2015-4-21
最后登录
2016-10-17

楼主
godrats 发表于 2015-7-28 00:06:37 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
我有一个data.frame,有一些列中因为是通过求max或者min得到所以引入了inf值,这样的data.frame写到文件再被其他软件读入的时候这些列就会被作为字符型读入,有没有方法可以对这些inf值统一赋值成NA或者其他什么值避免这个问题呢?
我能想到的方法是一列一列的循环,然后用is.infinite找到这些值,再统一赋值。。不过感觉这样有点麻烦啊,请大家指教
二维码

扫码加我 拉你入群

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

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

关键词:Frame Fram Data FRA RAM 如何

沙发
万人往LVR 在职认证  发表于 2015-7-28 09:20:11
小白提供一个傻傻的方法
数据框为data
  1. data<-data.frame(vec1=c(1,2,Inf),vec2=c(4,Inf,2))
  2. postemp <- which(data==Inf)
  3. row <- (postemp%%nrow(data))+nrow(data)*(postemp%%nrow(data)==0)
  4. col <- floor(postemp/nrow(data))+1-(postemp%%nrow(data)==0)
  5. pos <- cbind(row,col)
  6. data[pos] <- NA
复制代码

藤椅
十里春风 学生认证  发表于 2015-7-28 09:34:39
tbl<-data.frame(x=sample(c(1,2,3,Inf),100,rep=TRUE),y=sample(c(rnorm(3),Inf),100,rep=TRUE))
tbl[tbl==Inf]<-NA

板凳
godrats 发表于 2015-7-28 22:04:58
十里春风 发表于 2015-7-28 09:34
tbl
谢谢。。看来是我把问题复杂化了。。

报纸
godrats 发表于 2015-7-28 22:06:26
万人往LVR 发表于 2015-7-28 09:20
小白提供一个傻傻的方法
数据框为data
谢谢哦~
我最后写成了df[sapply(df,is.infinite)]<-NA;
已有 1 人评分学术水平 热心指数 信用等级 收起 理由
Sunny602678 + 1 + 1 + 1 精彩帖子

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

地板
水舞者 发表于 2016-4-19 15:39:23
godrats 发表于 2015-7-28 22:06
谢谢哦~
我最后写成了df[sapply(df,is.infinite)]
刚遇到这个问题,没想到这么简单,赞一个~

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

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