我有一个函数,需要的行编号的框架。
my_function <- function(row_number){
old_dataframe[row_number,] <<- old_dataframe[row_number,]*5
}
apply(old_dataframe, margin = 1, my_function())
字符串
有没有一种方法可以将当前在apply()函数中操作的行号作为参数传递给正在应用于对象框架的函数-在本例中是我的函数()?
apply(old_dataframe, margin = 1, myfunction(current_row_number))
型
我还没有找到一个与我的具体情况有关的主题。我想知道我是否错过了正确表达它的词汇。
我从代码中得到的问题实际上是这样的:“Error in Ops.data.frame(fsrf[2 + band,],fos[obs_row,]):'*' is only defined for data frames of the same size.”
然而,两个嵌套框fsrf[,]和fos[,]是完全相同的维度。在这种情况下,在函数中,当操作时,它们都拥有1行和2101个变量。它们确实是相同的大小。但我怀疑错误来自apply()函数将my_function逐行应用于旧的_嵌套框的方式。
1条答案
按热度按时间cetgtptt1#
问题是,在这种情况下,
apply
返回的是一个向量,而不是一个 Dataframe ,因为您将它与MARGIN = 1
一起使用,因此它将该函数应用于每一行,但它将行作为向量传递,而不是作为单行 Dataframe 传递。将代码修改为:
个字符