相关疑难解决方法(0)

在大型data.table中替换NA的最快方法

我有一个大的data.table,在其大约200k行和200列中分散了许多缺失值.我想尽可能有效地将这些NA值重新编码为零.

我看到两个选项:
1:转换为data.frame,并使用类似这样的东西
2:某种很酷的data.table子设置命令

我会对类型1的相当有效的解决方案感到满意.转换为data.frame然后返回data.table不会花费太长时间.

performance r dataframe data.table

137
推荐指数
7
解决办法
6万
查看次数

将Null更改为NA的函数

我正在尝试编写一个将Null值变为NA的函数.我的一个专栏的摘要如下所示:

      a   b 
 12 210 468 
Run Code Online (Sandbox Code Playgroud)

我想将12个空值更改为NA.我还有一些其他因素列,我想将Null值更改为NA,所以我从这里和那里借了一些东西来提出这个:

# change nulls to NAs
nullToNA <- function(df){

  # split df into numeric & non-numeric functions
  a<-df[,sapply(df, is.numeric), drop = FALSE]
  b<-df[,sapply(df, Negate(is.numeric)), drop = FALSE]

  # Change empty strings to NA
  b<-b[lapply(b,function(x) levels(x) <- c(levels(x), NA) ),] # add NA level
  b<-b[lapply(b,function(x) x[x=="",]<- NA),]                 # change Null to NA

  # Put the columns back together
  d<-cbind(a,b)
  d[, names(df)]
}
Run Code Online (Sandbox Code Playgroud)

但是,我收到此错误:

> foo<-nullToNA(bar)  
Error in x[x == "", ] <- NA : incorrect …
Run Code Online (Sandbox Code Playgroud)

r function missing-data na

8
推荐指数
1
解决办法
2万
查看次数

Dplyr - 过滤任何变量是否等于某个值

我有一个a包含5个变量的数据集,并希望像这样过滤它:

a1 <- a %>% filter(var_1 != 1 , var_2 != 1 , var_3 != 1 , var_4 != 1 , variable_5 != 1)
Run Code Online (Sandbox Code Playgroud)

我想知道是否存在这样的(伪代码):

a1 <- a %>% filter(anyvariable != 1)
Run Code Online (Sandbox Code Playgroud)

换句话说,我想摆脱价值为1的所有行,无论它出现在哪里.1只是一个随机数.它可能是9,99,或其他任何东西!谢谢!

r dplyr

6
推荐指数
2
解决办法
6435
查看次数

如何用R中的NA替换0或缺失值

这是我到目前为止已经完成的数据是数字数据类型

if (is.na(data) || attribute==0){replace(data,NA)}
Run Code Online (Sandbox Code Playgroud)

它给了我错误信息

替换(属性,NA)错误:缺少参数“值”,没有默认值

r

3
推荐指数
2
解决办法
2万
查看次数

将R中矩阵的全零变换为NA

可能重复:
将R中的所有0值替换为NA

离开这个问题.R中是否有类似的功能,x[is.na(x)] <- 0除了它会将矩阵中的每个零都改变为NA?

r matrix

0
推荐指数
1
解决办法
5024
查看次数

标签 统计

r ×5

data.table ×1

dataframe ×1

dplyr ×1

function ×1

matrix ×1

missing-data ×1

na ×1

performance ×1