split在R核心中是一个特别重要的功能.许多Stack Overflow提供的数据操作解决方案都依赖于它.它是任何分组操作的主力例程.
还有很多问题,其解决方案只有一条线split.很多人不知道
split.data.frame 可以按行分割矩阵;split.default 可以按列拆分数据.也许R文档的split表现并不是很好.它确实提到了第一次使用,但没有提到第二种用途.
splitR核心有四种方法:
methods(split)
#[1] split.data.frame split.Date split.default split.POSIXct
Run Code Online (Sandbox Code Playgroud)
我将提供一个答案的深度如何解释split.data.frame,split.default和C级.Internal(split(x, f))的工作."Date"和"POSIXct"对象欢迎其他答案.
我有一个矩阵temp1(尺寸Nx16)(通常,NxM)
我想将每行中的每个k列加总为一个值.
这是我到目前为止所得到的:
cbind(rowSums(temp1[,c(1:4)]), rowSums(temp1[,c(5:8)]), rowSums(temp1[,c(9:12)]), rowSums(temp1[,c(13:16)]))
Run Code Online (Sandbox Code Playgroud)
必须有一个更优雅(和通用)的方法来做到这一点.
我在这里注意到类似的问题:
在行之间总结特定的列
无法使用Ananda的解决方案; 得到以下错误:
sapply(split.default(temp1,0:(length(temp1)-1)%/%4),rowSums)
FUN中的错误(X [[1L]],...):
'x'必须是一个数组至少有两个维度
请指教.