【发布时间】:2021-09-29 00:35:39
【问题描述】:
我需要用 NA 替换多个元素。
这是我的数据:
data<-c("?","acaova","acapin","agrsto","alsaur","alsaurM","apeintM","arichi", "artabs","auschi","auschiM","auspen","berdar","berser","bertri","brocat", "brocol","brocolM","calpol","carand","cartho","cerarv","chucol","chucolM", "cirvul","claper","colbif","colbifM","colhys","corsel","corseo","crecap", "crecapM","cynech","d","d3","dacglo","diojun","diojunM","dipdes", "dros","elyang","elyangM","epibra","equbog","erocic","erocicM","erypan", "g","galapa","galhyp","ganu","ganuM","gaupoe","gerses","gM", "gper","gperM","h1","h1M","h2","hd3","hd5","hollan", "hydcha","hyppoe","hyprad","hypradM","leuvul","lotten","luppolM","nas", "nasM","naspoe","notant","notantM","papspe","plalan","plalanM","poapra", "poapraM","poasec","poasecM","potchi","pruavi","pruvul","ribcuc","rosrub", "rosrubM","rosrubP","schpat","schpatP","sdjab","senfil","solchi","t10h3", "t10h4","t10h6","t10h7","t10h8","t10h9","t2h8","tarofi","tr,notant" "tripra","tripraM","trirep","urture","usnbar","vertha","vicnig")
而且我需要用 NA 替换许多元素。我发现这样做的唯一方法是使用以下代码:
data[data=="b"]<-NA
data[data=="r"]<-NA
data[data=="ro"]<-NA
data[data=="sd"]<-NA
data[data=="t"]<-NA
data[data=="tr"]<-NA
有没有更简单的方法?
【问题讨论】:
-
你可以像
data[data %in% c('b', 'r', 'ro', 'sd', 't', 'tr')]一样使用%in% -
@AnilGoyal 也许只是我的直觉,但我认为 OP 想要 NA 填充 start 与这些前缀的值,而不是完全匹配它们。其中许多条目甚至没有出现在 OP 的数据中。
-
@TimBiegeleisen,但如果是这样,
r和ro的逻辑有何不同?与t和tr相同。 OP只能澄清。但是,如果希望完全匹配某些项目%in%似乎最容易在那里 -
我看到
r和ro并把它写成重叠的要求,也许是匆忙写的。 -
谢谢@AnilGoyal,无论如何正确的代码应该是: data[!data %in% c('b', 'r', 'ro', 'sd', 't', 'tr ')]