gpt4 book ai didi

替换数据帧中的 NULL

转载 作者:行者123 更新时间:2023-12-04 13:37:12 24 4
gpt4 key购买 nike

我有以下数据框:

  freq.a freq.b              
1 NULL 0.055
2 0.030 0.055
3 0.060 0.161
4 0.303 0.111
5 0.393 0.111
6 0.121 0.388
7 0.090 0.111

我想更换 NULL实际为 0。但是执行 df.m[is.null(df.m)] <- 0不会更改数据框中的任何内容。

MWE如下(抱歉长度):
library(plyr)
df.a <- c(5, 4, 5, 7, 3, 5, 6, 5, 5, 4, 5, 5, 4, 5, 4, 7, 2, 4, 4, 5, 3, 6, 5, 6, 4, 4, 5, 4, 5, 5, 6, 7, 4)
df.b <- c(1, 3, 4, 6, 2, 7, 7, 4, 3, 6, 6, 3, 6, 6, 5, 6, 6, 5)
df.a.count <- count(df.a)
df.b.count <- count(df.b)

#normalize the data
df.a.count$freq <- lapply(df.a.count$freq, function(X) X/length(df.a))
df.b.count$freq <- lapply(df.b.count$freq, function(X) X/length(df.b))
df.m <- merge(df.a.count, df.b.count, by ='x', all=TRUE)[2:3]
names(df.m) <- c('freq.a', 'freq.b')

#replace the NULL's with 0
df.m[is.null(df.m)] <- 0

最佳答案

你不应该使用 lapply .使用 sapply反而。这将产生 NA 's 而不是 NULL的。然后你可以这样做:

df.m[is.na(df.m)] <- 0

说明:
lapply返回一个列表而不是一个向量。在列表中,您可以有 NULL 值。 sapply以向量的形式返回相同的值,但带有 NA s 而不是 NULL s。

关于替换数据帧中的 NULL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40804040/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com