这一定很简单,但我真的很困惑。我在/mydir
中有很多文件。例如 -
list.files("/mydir")
中的文件:
myfiles <- c("new_Ago2_1_LTR_assembly.csv", "new_Ago2_2_LTR_assembly.csv",
"new_DCLd_1_LTR_assembly.csv", "new_DCLd_2_LTR_assembly.csv", "not_wanted_files")
所有这些文件都采用以下格式:
length A C G T
1 18 1890 3328 1646 3067
2 19 4444 8221 4914 8668
3 20 12090 18073 12903 19726
4 21 38719 35510 30843 41125
我想循环遍历myfiles
中的所有文件,并通过下面的列表(Ago2_1,Ago2_2,DCLd_1,DCLd_2)与文件名进行部分匹配,我想在{{{{}}中放置相应的值1}}在下面的数据帧划分代码中。
getvalue
以下是代码:
Ago2_1 <- 29,911,751
Ago2_2 <- 29,564,885
DCLd_1 <- 67,004,254
DCLd_2 <- 77,682,528
getvalue <- #this is where I am confused- how can I do the partial match with the file name and put the respective value?!!
答案 0 :(得分:0)
我们可以创建命名向量,然后使用grep来获取使用grepl的索引:
# lookup values
myValues <- setNames(c(29911751, 29564885, 67004254, 77682528),
c("Ago2_1","Ago2_2","DCLd_1","DCLd_2"))
# For loop start
# testing
# i = myfiles[1]
# get value
ix <- which(sapply(names(myValues), function(j)grepl(j, i)))
getvalue <- myValues[ ix ]
# For loop end