首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将dataframe列中的负值替换为其他值

如何将dataframe列中的负值替换为其他值
EN

Stack Overflow用户
提问于 2018-06-02 07:10:02
回答 3查看 1.2K关注 0票数 0

我在R中有一个接近一百万行和91列的大型数据帧。对于一个特定的列,我需要将所有负值替换为"the value + 360“。

所有0或正值应保持不变。

有许多解决方案可以将负值设置为0或NA,但我不能很好地执行此操作。

下面是我尝试的例子,数据帧称为df,功能称为Bearing

代码语言:javascript
复制
df$Bearing = apply(df$Bearing, 2, function(x){x[x<0] = x[x+360]})

df$Bearing[df$Bearing <0] <- df%Bearing +360

实现我的目标的最好方法是什么?

EN

回答 3

Stack Overflow用户

发布于 2018-06-02 07:33:32

尝试:

代码语言:javascript
复制
df$Bearing[df$Bearing <0] <- df$Bearing[df$Bearing <0] +360
票数 1
EN

Stack Overflow用户

发布于 2018-06-02 07:17:19

我会用

代码语言:javascript
复制
df <- within(df, Bearing <- Bearing + ifelse(Bearing < 0, 360, 0))
票数 0
EN

Stack Overflow用户

发布于 2018-06-02 17:01:43

如果由于data.frame的大小而导致速度问题,请考虑使用data.table

代码语言:javascript
复制
library(data.table)
setDT(df)
df[, bearing := ifelse(bearing < 0, bearing + 360, bearing)]
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50652000

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档