簡體   English   中英

如何用其他值替換數據框列中的負值

[英]How to replace negative values in a dataframe column with a different value

我在R中有一個大型數據框,其中包含近一百萬行和91列。 對於某一列,我需要將所有負值替換為“值+ 360”。

所有0或正值應保持不變。

有很多解決方案可以將負值設置為0或NA,但是我不能完全正常工作。

以下是我嘗試的示例,數據框稱為df ,特征部件稱為Bearing

df$Bearing = apply(df$Bearing, 2, function(x){x[x<0] = x[x+360]})

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

實現目標的最佳方法是什么?

嘗試:

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

我會用

df <- within(df, Bearing <- Bearing + ifelse(Bearing < 0, 360, 0))

如果由於data.frame的大小而導致速度成為問題,請考慮使用data.table

library(data.table)
setDT(df)
df[, bearing := ifelse(bearing < 0, bearing + 360, bearing)]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM