在R脚本中,我有一个函数可以在具有特定扩展名的目录中创建文件数据框。
数据框总是两列,但是有很多行,因为找到了具有该特定扩展名的文件。
数据框最终看起来像这样:
| Path | Filename |
|:------------------------:|:-----------:|
| C:/Path/to/the/file1.ext | file1.ext |
| C:/Path/to/the/file2.ext | file2.ext |
| C:/Path/to/the/file3.ext | file3.ext |
| C:/Path/to/the/file4.ext | file4.ext |
原谅我提出这个问题的考古方式。我知道在SQL中,您可以使用where
代替like
来应用=
个函数。所以我可以说``Filename like'%1%',它会拔出名字中带有1的所有文件。有没有办法使用这样的东西在R?
我有几个不同的脚本需要使用从此数据框中提取的文件名。我能想到的唯一可靠的方法是告诉脚本从哪个中提取出来的是设置这样的变量。
最终我希望这两个(伪)表达式产生同样的效果。
x <- file1.ext
和
x like '%1%'
都应该给出x = file1.ext
答案 0 :(得分:3)
您可以使用like
中的data.table
来获取您的sql行为。
从文档中可以看到这个例子
library(data.table)
DT = data.table(Name=c("Mary","George","Martha"), Salary=c(2,3,4))
DT[Name %like% "^Mar"]
对于您的问题,假设您有data.frame
df
这样的
path filename
1: C:/Path/to/the/file1.ext file1.ext
2: C:/Path/to/the/file2.ext file2.ext
3: C:/Path/to/the/file3.ext file3.ext
4: C:/Path/to/the/file4.ext file4.ext
DO
library(data.table)
DT<-as.data.table(df)
DT[filename %like% "1"]
应该给出
path filename
1: C:/Path/to/the/file1.ext file1.ext
答案 1 :(得分:2)