2017-07-25 169 views
0

这个函数中的-cnrow的目的是什么?-c和nrow在这个函数中做什么?

bdf <- by(bdf, bdf$Serial_number, function(SN, k) { 
        SN[-c(1:k, (nrow(SN)-k+1):nrow(SN)),] 
        }, k = 10) 

by()分割由第二个参数SERIAL_NUMBER和apply S IN的第三个参数的函数功能(SN,k)的数据帧BDF。我不明白这个函数的主体。

回答

5

c()创建一个向量。 -使向量中的数字为负数。该向量位于[的“行”位置,因此它将省略从1到k和从nrow(SN) - k + 1到数据帧末尾的行。因此,它将截断数据帧的第一行k和最后k - 1行。

+0

我再次提出一个问题:当2k行被省略时,为什么数字会被-c作为负数? – Ben

+1

你似乎有东西倒退。这些数字是负数,所以行被省略。这就是负面指数的作用。 '字母[1]'给你第一个字母,'字母[-1]'省略第一个字母。 '字母[c(1,3,5)]'给出第一,三,五个字母; '字母[-c(1,3,5)]'与字母[c(-1,-3,-5)]'相同,并且省略了第一,第三和第五个字母。 – Gregor

+0

有关更多详细信息,我建议通读一些[R资源](https://stackoverflow.com/tags/r/info),* R *介绍非常好。 – Gregor