0
我寫了下面的功能更改姓名爲第一最初在姓(R):函數不會遍歷向量中的所有對象?
names1 <- function(x) {
z <- unlist(strsplit(x, " "))[1]
z <- substr(z,1,1)
y <- unlist(strsplit(x, " "))[2]
paste(z,"."," ", y, sep="")
}
所以
name <- "John Doe"
names1(name)
成功返回
"J. Doe"
然而,當我嘗試將其應用於名稱向量時,它僅返回第一個對象(格式正確)。
爲什麼它不執行矢量中的所有對象的功能?我確實發現使用sapply
它可以正常工作,但是我可以在矢量上運行其他類型的函數,而不需要sapply
並將完整矢量作爲輸出返回。
你使用'[1]'和'[2]'硬編碼了'unlist(strsplit(...))'的第一個和第二個元素。你必須改變你的功能,以獲得每一個姓和名,或者你可以保持它不被矢量化並使用弗蘭克答案中的建議。 – Molx