我不知道如何循环每列以用列均值替换NA值.当我尝试使用以下代码替换一列时,它运行良好.
Column1[is.na(Column1)] <- round(mean(Column1, na.rm = TRUE))
Run Code Online (Sandbox Code Playgroud)
循环列的代码不起作用:
for(i in 1:ncol(data)){
data[i][is.na(data[i])] <- round(mean(data[i], na.rm = TRUE))
}
Run Code Online (Sandbox Code Playgroud)
值不会被替换.有人可以帮我这个吗?
我有一个0到5之间的整数向量.我想计算一个计数的直方图.例如:
y <- c(0, 0, 1, 3, 4, 4)
table(y)
# y
# 0 1 3 4
# 2 1 1 2
Run Code Online (Sandbox Code Playgroud)
但是,我也希望结果包括零2和零5的事实,即.我希望返回的向量长度为6.我可以用table()它吗?
期望的结果:
# y
# 0 1 2 3 4 5
# 2 1 0 1 2 0
Run Code Online (Sandbox Code Playgroud) 在Python中使用Pandas时...
我正在使用包含一些缺失值的数据集,并且我想返回一个仅包含缺少数据的行的数据框.有一个很好的方法来做到这一点?
(我目前的方法是效率低下"看看没有缺失值的数据框中没有索引,然后从这些索引中生成一个df.")
我有一个带有NA值的向量,我想用新的因子级别替换NA.
a = as.factor(as.character(c(1, 1, 2, 2, 3, NA)))
a
[1] 1 1 2 2 3 <NA>
Levels: 1 2 3
Run Code Online (Sandbox Code Playgroud)
这有效,但这似乎是一种奇怪的方式.
a = as.factor(ifelse(is.na(a), "NA", a))
class(a)
[1] "factor"
Run Code Online (Sandbox Code Playgroud)
这是预期的输出:
a
[1] 1 1 2 2 3 NA
Levels: 1 2 3 NA
Run Code Online (Sandbox Code Playgroud) 我有一个巨大的矩阵,有很多缺失值.我想获得变量之间的相关性.
1.解决方案
cor(na.omit(matrix))
Run Code Online (Sandbox Code Playgroud)
比下面好吗?
cor(matrix, use = "pairwise.complete.obs")
Run Code Online (Sandbox Code Playgroud)
我已经选择了只有超过20%缺失值的变量.
2.哪种方法最有意义?
是否有可能在scikit-learn中缺少值?他们应该如何代表?我找不到任何关于这方面的文件.
我正在寻找类似于包na.locf()中的东西zoo,但不是总是使用之前的非NA值我想使用最接近的非NA值.一些示例数据:
dat <- c(1, 3, NA, NA, 5, 7)
Run Code Online (Sandbox Code Playgroud)
替换NA为na.locf(3继续):
library(zoo)
na.locf(dat)
# 1 3 3 3 5 7
Run Code Online (Sandbox Code Playgroud)
并na.locf用fromLast组到TRUE(5向后携带):
na.locf(dat, fromLast = TRUE)
# 1 3 5 5 5 7
Run Code Online (Sandbox Code Playgroud)
但我希望使用最接近的非NA值.在我的例子中,这意味着3应该被转发到第一个NA,而5应该被转发到第二个NA:
1 3 3 5 5 7
Run Code Online (Sandbox Code Playgroud)
我有一个编码的解决方案,但想确保我没有重新发明轮子.有什么东西已经浮动了吗?
仅供参考,我目前的代码如下.也许如果不出意外,有人可以建议如何提高效率.我觉得我错过了一个明显的改进方法:
na.pos <- which(is.na(dat))
if (length(na.pos) == length(dat)) {
return(dat)
} …Run Code Online (Sandbox Code Playgroud) 如果我用Python写:
data = {'n': 3, 'k': 3.141594, 'p': {'a': 7, 'b': 8}}
print('{n}, {k:.2f}, {p[a]}, {p[b]}'.format(**data))
del data['k']
data['p']['b'] = None
print('{n}, {k:.2f}, {p[a]}, {p[b]}'.format(**data))
Run Code Online (Sandbox Code Playgroud)
我明白了:
3, 3.14, 7, 8
Traceback (most recent call last):
File "./funky.py", line 186, in <module>
print('{n}, {k:.2f}, {p[a]}, {p[b]}'.format(**data))
KeyError: 'k'
Run Code Online (Sandbox Code Playgroud)
而不是错误消息,我如何让Python更优雅地格式化None和不存在的字段?
举个例子,我想在输出中看到更像:
3, 3.14, 7, 8
3, ~, 7, ~
Run Code Online (Sandbox Code Playgroud)
当然,理想情况下,我希望能够指定使用的字符串而不是那些缺少的值.
我有一个数据框,按日期的降序排列.
ps1 = data.frame(userID = c(21,21,21,22,22,22,23,23,23),
color = c(NA,'blue','red','blue',NA,NA,'red',NA,'gold'),
age = c('3yrs','2yrs',NA,NA,'3yrs',NA,NA,'4yrs',NA),
gender = c('F',NA,'M',NA,NA,'F','F',NA,'F')
)
Run Code Online (Sandbox Code Playgroud)
我希望将NA值用先前的值归入(替换)并按userID分组如果userID的第一行有NA,则替换为该用户ID组的下一组值.
我正在尝试使用像这样的dplyr和zoo软件包......但它不起作用
cleanedFUG <- filteredUserGroup %>%
group_by(UserID) %>%
mutate(Age1 = na.locf(Age),
Color1 = na.locf(Color),
Gender1 = na.locf(Gender) )
Run Code Online (Sandbox Code Playgroud)
我需要结果df像这样:
userID color age gender
1 21 blue 3yrs F
2 21 blue 2yrs F
3 21 red 2yrs M
4 22 blue 3yrs F
5 22 blue 3yrs F
6 22 blue 3yrs F
7 23 red 4yrs F
8 23 red 4yrs F
9 …Run Code Online (Sandbox Code Playgroud) 正如您期望的DSL用于数据分析,R很好地处理丢失/不完整的数据,例如:
许多R函数都有一个na.rm标志,当设置为TRUE时,删除NA:
>>> v = mean( c(5, NA, 6, 12, NA, 87, 9, NA, 43, 67), na.rm=T)
>>> v
(5, 6, 12, 87, 9, 43, 67)
Run Code Online (Sandbox Code Playgroud)
但是如果你想在函数调用之前处理NA ,你需要做这样的事情:
从矢量中删除每个'NA':
vx = vx[!is.na(a)]
Run Code Online (Sandbox Code Playgroud)
从矢量中删除每个'NA'并将其替换为'0':
ifelse(is.na(vx), 0, vx)
Run Code Online (Sandbox Code Playgroud)
从数据框中删除包含"NA"的整个行:
dfx = dfx[complete.cases(dfx),]
Run Code Online (Sandbox Code Playgroud)
所有这些功能都会永久删除 "NA"或其中带有"NA"的行.
有时候这并不是你想要的 - 在工作流程的下一步可能需要为数据帧的"NA"删除副本,但在后续步骤中,你经常需要这些行(例如,计算一个由于先前调用"完整案例"而导致缺少行的列的列式统计信息,但该列中没有"NA"值.
尽可能清楚我正在寻找的东西:python/numpy有一个类,蒙面数组,有一个掩码方法,它允许你在函数调用期间隐藏 -但不删除 - NA.R中是否有类似的功能?
missing-data ×10
r ×7
python ×3
na ×2
correlation ×1
dplyr ×1
imputation ×1
pandas ×1
scikit-learn ×1
scikits ×1
zoo ×1