首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >替换R中特定数据框列中的多个字符串

替换R中特定数据框列中的多个字符串
EN

Stack Overflow用户
提问于 2016-12-04 11:36:02
回答 1查看 1.7K关注 0票数 0

我已经找遍了所有的地方,但是没有找到答案。我有一个数据框,它包含具有多个级别的列,这些列沿着“未知”、“无响应”或“拒绝回答”等行。所有这些对我的分析都是无用的,所以我想用NA替换它们。

注意,我不想在整个数据框中替换它们,只想替换特定的列!还有一些列包含具有相同名称的值,这些值实际上对我很有用,我不想去管它们。

我已经设法通过使用以下命令逐个替换它们:

代码语言:javascript
运行
复制
data$col1 <- factor(gsub("Unknown", "NA", data$col1))

但它一次只对一个字符串有效。如果我尝试添加多个字符串,R会抛出一个错误。有没有更有效的方法来做到这一点?

我对编程比较陌生,请温文点!

EN

回答 1

Stack Overflow用户

发布于 2016-12-04 11:44:09

如果我们需要将多个值更改为NA,一种选择是在读取数据时在read.csv/read.table中使用na.strings

代码语言:javascript
运行
复制
dat <- read.csv("yourfile.csv", na.strings = c("Unknown", "No response", 
             "Refused to answer"))

然而,这里的问题在于特定的列,在这种情况下,创建列的索引,循环遍历列,并通过使用%in%创建逻辑索引来对值进行replace (假设这些不是子串)

代码语言:javascript
运行
复制
columnsOfInterest <- c(1, 4, 5) #just for an example
df1[columnsOfInterest] <- lapply(df1[columnsOfInterest], function(x)
         replace(x, x %in% c("Unknown", "No response", "Refused to answer"), NA))

注意:更改为带引号的NA,即"NA"是无用的,我们只需要NA

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40955089

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档