【问题标题】:Renamng and Deleting specific NA's in dataset in R [closed]重命名和删除 R 中数据集中的特定 NA [关闭]
【发布时间】:2017-07-01 12:30:13
【问题描述】:

我对此很陌生,我可以使用一些帮助。 我喜欢在 R 中实现两件事。目前我有一个名为“researchdata”的数据集。

1。我喜欢处理特定列中的数据。

假设我想在列/变量“City”中将文本“New York”更改为“NY”。 (所以不是整个数据集一次)我不确定命令是否不同,但我也喜欢使用数字来执行此操作,例如将“-1”更改为“NA”。

2。删除特定列中的特定值

我如何删除特定列的 NA 或缺失值或实际上任何类型的值或字符串。假设我想删除列/变量城市的值“NA”和“-1”。

我尝试了一些命令,但我无法让它们工作,它们不是我想要的。希望各位大神帮忙,先谢谢了。

【问题讨论】:

  • 请提供reproducible 示例。
  • 至于问题1;好吧,例如我想出了这个; mydata$city[mydata$city == -1]
  • 请通过编辑您的原始帖子来回复 cmets,而不是通过评论回复

标签: r data-manipulation data-cleaning


【解决方案1】:

1.要操作特定列中的数据,请查看dplyr::mutate

df <- data.frame(A = 1:5, B = 1:5)
library(dplyr)
df %>% mutate(A=ifelse(A==3,NA,A))

2.要从数据中删除 NA,您可以:

df1 <- df %>% mutate(A=ifelse(A==3,NA,A))
df1[complete.cases(df1),]

或使用dplyr::filter:

df2 <- df
df2 %>% filter(!is.na(A))

请注意,这些操作会删除 A==NA 所在的整行。

(听起来你只是在努力学习,但为了获得最好的帮助,最好提供一个小数据集和一个特定的问题(有预期的输出)。)

【讨论】:

  • 感谢您的回复,是的,我正在学习,但同时也在进行真正的研究。现在我退后一步,使用了一个免费的数据集“LungCapData.csv”,你可以在这里找到它; docs.google.com/file/d/0BxQfpNgXuWoIWUdZV1ZTc2ZscnM/edit 我为数字 1 编辑了您的命令。 mydata %>% mutate(Age=ifelse(Age==15,NA,Age)) 是的,它确实将 15 岁的人更改为 N.A. R. 但是当我刷新并重新打开我的数据集时,15 仍然存在。怎么会?附言。我的回复格式有些问题。
  • ps 只能改成 NA 而不是随机数或单词?
  • pps with mydata[complete.cases(mydata),] 它会从我的数据集中删除所有 NA,我不希望这样。我只想要年龄列中的 NA。我想这个 mydata %>% filter(!is.na(Age)) 会起作用。但是我无法测试它,因为它不会在我的数据集中将 15 更改为 NA
  • 试试mydata &lt;- mydata %&gt;% mutate(Age=ifelse(Age==15,NA,Age))
  • 是的,成功了!还有问题 2 的命令。你真的帮了我很多,但我还剩下一点点小东西。所以总而言之,我现在可以在任何类型的列中标记 NA,我也可以在特定列中删除它们而不删除其他 NA。而且我还可以把 NA'S 的整张纸擦干净。感谢那。但还有一件事;现在我可以将所有内容替换为 NA .. 还有一个选项我可以编辑,例如高度为 72 的数字字符串,如“hello”或数字,例如“999”
猜你喜欢
  • 2021-12-25
  • 2022-07-04
  • 2023-03-04
  • 2021-06-23
  • 2021-10-08
  • 2022-09-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多