据推测,R在运行* apply函数时知道它正在处理列表的哪个成员,向量的元素或矩阵行等。是否可以在函数中使用此索引,而无需采用如下的一些解决方法:
fruit <- c("Bananas", "Oranges", "Avocados", "Celeries?")
sapply(fruit, function(x)
paste(x, "are fruit number", which(fruit==x)))
或these等其他解决方法在提及类似问题时发布了?
希望[毫无结果?]更优雅。
答案 0 :(得分:4)
我宁愿写
sapply(seq_along(fruit), function(ii) paste(fruit[ii], "are fruit number", ii))
答案 1 :(得分:3)
您可以将索引而不是矢量传递给sapply;
fruit <- c("Bananas", "Oranges", "Avocados", "Celeries?")
sapply(seq_along(fruit), function(x) paste(fruit[x], "are fruit number", x))
答案 2 :(得分:2)
也许mapply是一个有用的替代品? (虽然这里并不需要)
fruit <- c("Bananas", "Oranges", "Avocados", "Celeries?")
mapply(paste, fruit, "are fruit number", seq_along(fruit))