我有一个字符串向量:
ve <- c("N","A","A","A","N","ANN","NA","NFNFNAA","23","N","A","NN", "parnot", "important", "notall")
Run Code Online (Sandbox Code Playgroud)
我只想在此向量中保留三个可能的值:N、A和NA。
因此,我想替换任何不是N或A的元素NA。
我怎样才能实现这个目标?
我已经尝试过以下方法:
gsub(ve, pattern = '[^NA]+', replacement = 'NA')
gsub(ve, pattern = '[^N|^A]+', replacement = 'NA')
Run Code Online (Sandbox Code Playgroud)
但这些效果不佳,因为它们将每个字符串中的每个“A”或“N”实例替换为 NA。所以在某些情况下我最终会得到NANANANANANA, 而不是简单地NA.
我有两个向量g和h。我想比较这两个向量中的数字,看看它们之间是否有共同元素。但共同元素不必完全相同,可以在 的范围内(-0.5, +0.5)。因此,g\xc2\xb10.5正在与 进行比较h\xc2\xb10.5。
g <- c(0.5, 5956.3, 38, 22.666, 590.3, 21.992, 9.3)\nh <- c(0.7, 99.2, 39, 30, 21.68, 9.4, 22.333, 0.001, 0.000222, 9.999)\nRun Code Online (Sandbox Code Playgroud)\n\n例如,在上面的两个向量中,0.5fromg和0.7from匹配,因为它们彼此h位于 from 附近。并且还匹配。而且,并且也匹配,因为它们的差异也在范围之内。\xc2\xb10.59.49.322.66622.333(-0.5, +0.5)
值得注意的是,的每个元素都应该与 的每个元素进行g比较。h
有没有一个函数可以做到这一点R?
all.equal不幸的是,函数仅将一个向量中的每个元素与另一个向量中具有相同索引的元素进行比较,因此期望向量的长度相等。我想做的是,我想将向量的每个元素g与向量的每个元素进行比较h。