我有一個數據框,其中包含一個文件名與常規部分。我使用正則表達式來解析這個文件名並將每個部分存儲在它自己的列中。開箱清單作爲數據框列清單
parse.file.name <- function(file.name="cc-nolabel-AEMNZ334_0009-loc-1317-407-6-39.png")
{
rfn <- regexec(pattern="cc-(.+?)-(.+?)-loc-(.+?)-(.+?)-(.+?)-(.+?)\\.png", text=file.name)
matchfn <- regmatches(file.name, rfn)
return(matchfn)
}
basic.features$parsed.filename <- parse.file.name(as.character(basic.features$filename))
filename
包含類似的默認參數值。我檢索了單個值,查找類似下面的每一列:
basic.features$label <- unlist(lapply(basic.features$parsed.filename,
function(pf) {
return(unlist(pf)[2]) }))
我覺得這不是一個優雅的方式,但不能設法從包含每一行列表中的數據幀列中獲取單個值容易。有一個更好的方法嗎?
如果你喜歡示例數據:
basic.features <- data.frame(filename=c("cc-nolabel-AEMNZ336_0009-loc-1003-1504-7-8.png", "cc-nolabel-AEMNZ335_0006-loc-1979-880-13-10.png", "cc-nolabel-AEMNZ333_0007-loc-941-263-8-8.png", "cc-nolabel-AEMNZ336_0014-loc-2011-24-4-4.png", "cc-nolabel-AEMNZ335_0013-loc-2087-644-66-41.png", "cc-nolabel-AEMNZ333_0013-loc-1531-374-12-23.png"))
太糟糕了我只能選擇一個答案。謝謝。 –