0
我有一個嵌套函數的問題,不能找出原因,因爲我把它放在其他函數內的代碼之前。 如果我運行的代碼裏面的主要功能一切都很好,但如果我調用的函數,我得到「無法找到函數‘InstanceFromLocation’使用嵌套函數「找不到函數」
MatchLocationsInstances = function (resultSheet1) {
#load required libraries
require(plyr)
#declare functions
InstanceFromLocation = function (v_string) {
#load libraries
require(stringr)
require(gdata)
#variables
stringLenth = nchar(v_string)
#find positions of the ":"
v_positions = data.frame(str_locate_all(v_string, ':'), stringsAsFactors = F)
positions_length = length(v_positions[, 1])
#substract and trim the result if there are entries in v_positions
if (positions_length != 0) {
result = trim(substr(v_string, v_positions[positions_length, 1] + 1, stringLenth))
} else {
result = ''
}
return(result)
}
#add a new dataframe with
tmpResult = ddply(resultSheet1, .(`Col 1`), transform, FromLocation = toupper(InstanceFromLocation(`Col 1`)))[, 2:9]
return(tmpResult)
}
reproductible數據集
resultSheet1 = structure(list(`File Name` = c("file_name2.txt",
"file_name.txt", "file_name.txt",
"file_name.txt", "file_name.txt",
"file_name.txt"), `Col 1` = c("sometext2",
"sometext2", "sometext2", "sometext2", "sometext2", "sometext2"), Hostname = c("sometext",
"sometext", "sometext", "sometext", "sometext",
"sometext"), `Schema Name` = c("schema", "schema",
"schema", "schema", "schema", "schema"),
`text Targets` = c("***File Error!***", "sometext_LOCATION/sometext/sometext:port:sometext2 ",
"sometext5// :port:sometext2 ", "sometext3/sometext3/sometext:port:sometext2 ",
"sometext4/textI/sometext:port:sometext2 ", "textI_LOCATION/textI/sometext:port:sometext2 "
), `Number of Objects Deployed` = c(963, 963, 963, 963, 963,
963), `No. of jobs that were run on this instance` = c(342623,
337803, 337803, 337803, 337803, 337803)), .Names = c("File Name",
"Col 1", "Hostname", "Schema Name", "text Targets",
"Number of Objects Deployed", "No. of jobs that were run on this instance"
), row.names = c(NA, 6L), class = "data.frame")
但我希望它使用嵌套函數。它應該能夠看到它。我之前使用過嵌套函數,而我沒有這個問題。這個特定功能有什麼問題? –
嗨@ttmaccer。感謝你的回答。我知道範圍文件。你能解釋爲什麼我的嵌套函數超出範圍嗎?我在主函數中聲明它,它應該看到它,但它返回錯誤。 –
我編輯了我的第一篇文章,併爲數據集 –