楼主: 菩提镜
857 3

[问答] 下面哪里错了? [推广有奖]

  • 2关注
  • 0粉丝

博士生

34%

还不是VIP/贵宾

-

威望
0
论坛币
5 个
通用积分
31.3330
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
31819 点
帖子
28
精华
0
在线时间
497 小时
注册时间
2012-1-13
最后登录
2024-12-11

楼主
菩提镜 发表于 2019-3-20 22:19:54 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
> d <- data.table(a,b,c)
> d[a=="f" &  b>4, c:=-1*c]
Warning message:
In `[.data.table`(d, a == "f" & b > 4, `:=`(c, -1 * c)) :
  Coerced double RHS to integer to match the type of the target column (column 3 named 'c'). The RHS values contain no fractions so would be more efficiently created as integer. Consider using R's 'L' postfix (typeof(0L) vs typeof(0)) to create constants as integer and avoid this warning. Wrapping the RHS with as.integer() will avoid this warning too but it's better if possible to create the RHS as integer in the first place so that the cost of the coercion can be avoided.
> d
   a b   c
1: t 1  11
2: t 2  12
3: f 3  13
4: t 4  14
5: f 5 -15
6: t 6  16
7: t 7  17
8: f 8 -18
9: t 9  19

请教:为什么结果正确,但是报错呢?
           我的目的是,c列符合a列取f且b列大于4的元素乘以-1

二维码

扫码加我 拉你入群

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

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

关键词:Fractions EFFICIENT possible constant WRAPPING

沙发
caimiao0714 学生认证  发表于 2019-3-21 06:41:40
没有报错,只是警告信息而已。可能是你的数据类型有问题,你能给出你的数据的前五行吗?
已有 1 人评分论坛币 收起 理由
cheetahfly + 10 热心帮助其他会员

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

藤椅
菩提镜 发表于 2019-3-21 07:15:33
caimiao0714 发表于 2019-3-21 06:41
没有报错,只是警告信息而已。可能是你的数据类型有问题,你能给出你的数据的前五行吗?
谢谢您的回复,下面的d就是数据,里面的负数是-1×c得来的,正常数就是b=c(1:9),c=c(11:19).不知表达的是否清楚。

板凳
caimiao0714 学生认证  发表于 2019-3-21 07:20:22
菩提镜 发表于 2019-3-21 07:15
谢谢您的回复,下面的d就是数据,里面的负数是-1×c得来的,正常数就是b=c(1:9),c=c(11:19).不知表达的是 ...
你试试运行这个:

d[a=="f" &  b>4, ][,c:=-1*c]
已有 1 人评分论坛币 学术水平 热心指数 信用等级 收起 理由
admin_kefu + 20 + 2 + 2 + 2 热心帮助其他会员

总评分: 论坛币 + 20  学术水平 + 2  热心指数 + 2  信用等级 + 2   查看全部评分

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

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