gpt4 book ai didi

r - 在 R 中选择一列

转载 作者:行者123 更新时间:2023-12-04 10:52:39 25 4
gpt4 key购买 nike

我想在 R 中编写一个循环来检查数据帧,以便将 0 值更改为中位数。不幸的是我得到一个错误。

这只是我循环的一部分。

y <- median(df[1])
Error in median.default(df[1]) : need numeric data

如果我使用,它会起作用。
y <- median(df$name_of_the_column)

这是我的循环。我还没有完成循环。它仍在进行中。
i = 1
for (x in df) {
if (df[i][df[i] == 0]) {
df[i][df[i]] <- median(df[i])
}

最佳答案

答案取决于您是否希望将 0 作为中位数计算的一部分。这是两个基于 tidyverse 的解决方案,一个首先将 0 转换为缺失值,因此它们不是中位数计算的一部分,另一个将它们包含在计算中(这似乎是您一直在做的):

library(tidyverse)
library(dplyr)

df<-
tibble(
a=c(0:9),
b=c(0:9),
c=c(-2:7)
)

将 0 转换为 NA 然后中位数:
df%>%
mutate_all(
list(~ifelse(.==0,NA,.))
)%>%
mutate_all(
list(~ifelse(is.na(.),median(.,na.rm=TRUE),.))
)

将 0 直接转换为中位数:
df%>%
mutate_all(
list(~ifelse(.==0,median(.,na.rm=TRUE),.))
)

关于r - 在 R 中选择一列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59398867/

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