【问题标题】:Convert factor above certain value to NA将高于某个值的因子转换为 NA
【发布时间】:2013-11-04 08:29:45
【问题描述】:

我有一个包含 250 万个 obs 的 data.frame。 32 个变量,所有因素。一个变量包含 0 到 999 之间的数字。我想将 99 以上的所有数字都转换为 NA,因为该模型只接受 2 位数字。

谢谢,

提姆

【问题讨论】:

  • 欢迎来到 SO。请How to make a great R reproducible example?。你也应该显示what have you tried
  • 谢谢,但我认为 @zero323 和我也想要的是您将其与您可以测试的一小部分数据框(例如 created by dput)一起添加到问题中我们的解决方案。
  • 试试:dataframe[dataframe$postcode > 99,"postcode"] <- NA
  • @zero323 没错,在这种情况下使用nchar(as.character(dataframe$postcode))>2
  • @Tim,你需要像我原来的评论那样对[ 使用两个参数,否则你只会提取完整的列

标签: r na r-factor


【解决方案1】:
######making example data set######
ex=matrix(as.factor(rnorm(6,100,10)),3,2)

ex

#           [,1]      [,2]
# [1,] 113.29893 101.54136
# [2,]  91.55164 101.45872
# [3,] 101.14473  88.19593

ex2=data.frame(ex)
###### solution ######    
ex3=apply(ex2,2,as.numeric)

ex3[ex3>99]=NA

ex3
#         X1       X2
# 1       NA       NA
# 2 91.55164       NA
# 3       NA 88.19593

【讨论】:

    猜你喜欢
    • 2015-01-27
    • 1970-01-01
    • 1970-01-01
    • 2015-05-09
    • 1970-01-01
    • 1970-01-01
    • 2013-02-15
    相关资源
    最近更新 更多