在R中查找没有循环的值
我有一个用c()创建的向量v,它包含以下数据:在R中查找没有循环的值,r,find,match,unique-values,R,Find,Match,Unique Values,我有一个用c()创建的向量v,它包含以下数据: v[a,b,d,z,e,f], it must be unordered 我有一个txt文件,格式如下: label 1 2 3 .... b 100 2000 15 z 123 14 12 a 55 565
v[a,b,d,z,e,f], it must be unordered
我有一个txt文件,格式如下:
label 1 2 3 ....
b 100 2000 15
z 123 14 12
a 55 565 55
.....
我已经提取了txt文件,该文件由带有strplit的制表符分隔
ext_data<-strsplit(file,"\t")
有什么建议吗
粗略地说,我想知道是否有一种方法可以使用匹配,但对于列,可能会转换一行中的列标签?只是创建一些测试数据来说明我的解决方案:
testdata <- data.frame(namecol=c("b","r","a","j","z","l","s","n","t"),
v1=sample(1:1000,9),
v2=sample(1:1000,9),
v3=sample(1:1000,9))
vecfind <- c("a","b","d","z","e","f")
你能发布更多的数据吗?我不明白为什么你会使用类似于
strsplit
的东西来读取带分隔符的文件,而不是,比如说,read.delim
…?我使用了它,因为在那之后我可以像vector@TARehman,很抱歉,原始文件太大,而且messy@Manolo没问题。我想你可以用%in%来做这件事,但是给我一点时间,我会发布一些代码。你不需要这里的。此外,如果一次就足够了,例如,elements@Roland(+1)周围都是好的点,那么就没有理由再细分三次。我把which()
放在那里主要是为了它提供了关于子集如何工作的概念清晰性。元素方面的要点很好-效率更高。谢谢,但是我在testdata[testdata[,1]…]中遇到了一个错误,如果我只能像testdata[[1]][[1]]那样访问我的元素,我该怎么做?你可以使用[n,]选择行作为向量。删除了我要修改的最后一条注释;我忘记了你可以使用[n,]将行作为向量.我认为它返回了n个元素的数据帧。
testdata <- data.frame(namecol=c("b","r","a","j","z","l","s","n","t"),
v1=sample(1:1000,9),
v2=sample(1:1000,9),
v3=sample(1:1000,9))
vecfind <- c("a","b","d","z","e","f")
v1_elements <- testdata[which(testdata[[1]] %in% vecfind),2]
v2_elements <- testdata[which(testdata[[1]] %in% vecfind),3]
v3_elements <- testdata[which(testdata[[1]] %in% vecfind),4]