相关疑难解决方法(0)

按比例随机将NAs插入数据帧

我有一个完整的数据框架.我希望数据帧中20%的值被NA替换,以模拟随机丢失的数据.

A <- c(1:10)
B <- c(11:20)
C <- c(21:30)
df<- data.frame(A,B,C)
Run Code Online (Sandbox Code Playgroud)

任何人都可以建议一个快速的方法吗?

r missing-data dataframe na

11
推荐指数
3
解决办法
4318
查看次数

如何将随机的"NA"添加到数据框中

我用随机值创建了一个数据框

n <- 50
df <- data.frame(id = seq (1:n),
age = sample(c(20:90), n, rep = TRUE), 
sex = sample(c("m", "f"), n, rep = TRUE, prob = c(0.55, 0.45))
)
Run Code Online (Sandbox Code Playgroud)

并想介绍一些NA值来模拟真实世界的数据.我试图使用,apply但无法到达那里.这条线

apply(subset(df,select=-id), 2, function(x) {x[sample(c(1:n),floor(n/10))]})
Run Code Online (Sandbox Code Playgroud)

将检索随机值,但是

apply(subset(df,select=-id), 2, function(x) {x[sample(c(1:n),floor(n/10))]<-NA}) 
Run Code Online (Sandbox Code Playgroud)

不会将它们设置为NA.是否尝试过withwithin,太.

蛮力工作:

for (i in (1:floor(n/10))) {
  df[sample(c(1:n), 1), sample(c(2:ncol(df)), 1)] <- NA
  }
Run Code Online (Sandbox Code Playgroud)

但我更愿意使用这个apply家庭.

r apply dataframe

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

标签 统计

dataframe ×2

r ×2

apply ×1

missing-data ×1

na ×1