楼主: 蛮好的
3216 3

[问答] R语言里如何对数据框的里数值按条件进行运算? [推广有奖]

  • 1关注
  • 0粉丝

等待验证会员

高中生

17%

还不是VIP/贵宾

-

威望
0
论坛币
10 个
通用积分
4.7323
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
143 点
帖子
14
精华
0
在线时间
29 小时
注册时间
2020-1-27
最后登录
2020-5-10

楼主
蛮好的 发表于 2020-4-26 09:30:16 来自手机 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
>a
           V1                  V2                  V3
1          -0.4                -1.4               2.4

2           3.3                3.4                  -1.42

3            3.75               -1.3                5.76
对着数据框进行处理。小于零的数值用零代替,大于零的数值,进行二次方然后减0.001的运算。该怎么写代码?能帮忙写一下吗?谢谢了
二维码

扫码加我 拉你入群

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

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

关键词:数据框

沙发
llb_321 在职认证  发表于 2020-4-26 14:56:07
a<-as.matrix(a)
a[a<0] <- 0
a <- a^2 - 0.001
a[a<0] <- 0
a

藤椅
llb_321 在职认证  发表于 2020-4-26 19:24:48
上面的代码,还是有问题,不适合0<=a[m,n]<sqrt(0.001)的情况,否则第二次赋0值会出错。可以暂时改为:
a<-as.matrix(a)
a[a<0] <- 0
a <- a^2 - 0.001
a[a==-0.001] <- 0
a
但是这样改的话,只适合矩阵原来的元素没有0值的情况,否则也会出错。

所以稳妥起见,还是编个循环语句,一个个元素的重新赋值吧,只是如果数据量大的话,运行起来会很耗时间。
已有 1 人评分论坛币 收起 理由
cheetahfly + 10 热心帮助其他会员

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

板凳
llb_321 在职认证  发表于 2020-4-26 19:29:19
另外,你的题目中,没有说元素是0时怎么处理。
如果确认没有0值,则完全可以用第二次改过的方法。

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

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