R 将值替换为每列的模式

R 将值替换为每列的模式,r,excel,azure,R,Excel,Azure,嘿,伙计们,我正在处理一个非常大的数据集(200列,750000行)。 有几个单元格的值为-1,我想根据特定列的模式(最高重复值)替换其中的每个单元格,而不仅仅是所有-1的一个标准值。例如,A列中的-1将替换为A列中的模式,B列中的-1将替换为B列中的模式 有没有一种方法可以解决这个问题,而不必使用if函数创建新的200列和750000行 谢谢你抽出时间 问候,, InWoords我们可以使用 不清楚-1是否作为列中最常见的值出现。在这种情况下,排除mutate\u all df1 %>%

嘿,伙计们,我正在处理一个非常大的数据集(200列,750000行)。 有几个单元格的值为-1,我想根据特定列的模式(最高重复值)替换其中的每个单元格,而不仅仅是所有-1的一个标准值。例如,A列中的-1将替换为A列中的模式,B列中的-1将替换为B列中的模式

有没有一种方法可以解决这个问题,而不必使用if函数创建新的200列和750000行

谢谢你抽出时间

问候,,
InWoords

我们可以使用

不清楚-1是否作为列中最常见的值出现。在这种情况下,排除
mutate\u all

df1 %>%
     mutate_all(funs(replace(., .== -1, Mode(.[. != -1]))))

此外,如果有没有-1的列,那么我们可以使用
mutate\u if
跳过这些列

df1 %>%
   mutate_if(funs(any(.==-1)),funs(replace(., .== -1, Mode(.[. != -1]))))
数据
df1谢谢,我会申请:)
df1 %>%
     mutate_all(funs(replace(., .== -1, Mode(.[. != -1]))))
df1 %>%
   mutate_if(funs(any(.==-1)),funs(replace(., .== -1, Mode(.[. != -1]))))
df1 <- structure(list(V1 = c(1L, 0L, 3L, 2L, 3L, 5L, 0L, 4L, 4L, 0L), 
V2 = c(3L, 1L, 3L, 3L, 1L, 5L, 0L, -1L, 2L, -1L), V3 = c(-1L, 
2L, 4L, -1L, 0L, 3L, -1L, 3L, 3L, -1L), V4 = c(1L, 0L, 1L, 
0L, 5L, 0L, 4L, 3L, 3L, 5L), V5 = c(2L, 1L, 0L, 0L, -1L, 
-1L, 1L, 1L, 0L, 1L)), .Names = c("V1", "V2", "V3", "V4", 
 "V5"), row.names = c(NA, -10L), class = "data.frame")