我有一个包含几列数据的 csv 文件,我只想直接使用其中一列。我已将 csv 文件读入 R,如下所示:
list1<-readLines("myfile.csv")
我应该像这样读它吗?:
list1<-read.csv(file="myfile.csv",sep=",",head=TRUE)
假设这个 csv 文件第 5 列列出了(“一”、“三”、“四”)
我在 R 中有一个这样的列表:
list2<-c("one","two","three","three")
我想将 csv 文件的第 5 列与 list2
进行比较,并单独提取和列出常用术语。如果一个常用术语多次列出,我想保留重复项,例如“三”在 list2
中列出两次,所以我也想在新列表中列出两次。
我不仅想列出 csv 文件的第 5 列,还想列出包含第 5 列中的常用术语的整行。
这是我最好的尝试,但它不会确认是否在 csv 文件中多次找到通用术语,也不会列出在 csv 文件中找到通用术语的整行。
list1<-readLines("myfile.csv")
list2<-c("one","two","three","three")
intersect(list1,list2)
结果:一、三
感谢您的帮助!
最佳答案
要找出 list2
的哪些元素位于 list1
的第 5 列中:
list2[list2 %in% list1[,5]]
并获取 list1
的所有行,其中第 5 列中的条目也位于 list2
中:
list1[which(list1[,5] %in% list2),]
短一点:
list1[list1[,5] %in% list2,]
考虑一下这个旁注:最好不要调用这两个对象 list1
和 list2
因为 list1
是一个 data.frame list2
是一个向量,list
是 R 中另一种类型的数据结构(请参阅 ?list
)。
关于r - 在 R : How to compare a csv file and a list to keep common terms, 中并分别列出它们,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24371828/