gpt4 book ai didi

r - 用相同类型的NA填充列的函数

转载 作者:行者123 更新时间:2023-12-03 13:55:50 26 4
gpt4 key购买 nike

我有一个数据框,其中包含许多不同类型的列。我想用相应类的NA替换每一列。

例如:

df = data_frame(x = c(1,2,3), y = c("a", "b", "c"))

df[, 1:2] <- NA


产生一个具有两个逻辑列的数据帧,而不是数字和字符。
我知道我可以告诉R:

df[,1] = as.numeric(NA)
df[,2] = as.character(NA)


但是,如何对所有可能类型的NA的所有列进行循环处理呢?

最佳答案

您可以使用此“技巧”:

df[1:nrow(df),1] <- NA
df[1:nrow(df),2] <- NA


[1:nrow(df),]基本上告诉R用 NA替换列中的所有值,这样,在替换其他值之前,逻辑 NA被强制为列的原始类型。

另外,如果您有很多要替换的列并且data_frame有很多行,我建议存储行索引并重用它们:

rowIdxs <- 1:nrow(df)
df[rowIdxs ,1] <- NA
df[rowIdxs ,2] <- NA
df[rowIdxs ,3] <- NA
...




根据 @RonakShah的巧妙建议,您还可以使用:

df[TRUE, 1] <- NA
df[TRUE, 2] <- NA
...




正如 @Cath指出的那样,当您选择多个列(例如, :

df[TRUE, 1:3] <- NA
# or
df[1:nrow(df), 1:3] <- NA

关于r - 用相同类型的NA填充列的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53719387/

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