作者OGCKM (只有神知道的世界)
看板R_Language
标题Re: [问题] 询问.colSums的用法
时间Sun Oct 11 23:55:25 2015
※ 引述《a78998042a (Benjimine)》之铭言:
: - 问题: 当你想要问问题时,请使用这个类别
: [问题类型]:
: 程式谘询(我想用R 做某件事情,但是我不知道要怎麽用R 写出来)
: [软体熟悉度]:
: 使用者(已经有用R 做过不少作品)
: [问题叙述]:
: 不懂.colSums的用法
: [程式范例]:
: x = y = 1:10
: temp.m = outer(x, y, function(x, y) x+y)
: c[1:3, 1:2]
: [,1] [,2]
: [1,] 2 3
: [2,] 3 4
: [3,] 4 5
: .colSums(temp.m, 3, 2)
: [1] 9 18
: #原本我以为答案会是 9 12
: #但结果不是,.colSums 後面两个参数是维度,不知道该怎麽用
: #有人知道他设定的方法吗? 感谢!
.colSums刚刚试了一下 是以从你产生的那个矩阵的第一列
要加几次做一栏加总
举例你产生的矩阵
第一列是 2 3 4 5 6 7 8 9 10 11
你的 .colSums(temp.m, 3,2)
3 指的是 取三个相加做为一栏加总
2 指的是 取两栏
所以结果是 2 + 3 + 4 = 9 (前三个当第一栏)
5 + 6 + 7 = 18 (後三个当第二栏)
你可以测试其他数值填入
例如: .colSums(temp.m, 4,2) 他就会取四个数当一组作为一栏
就变成 2 + 3 + 4 + 5 = 14 第一栏
6 + 7 + 8 + 9 = 30 第二栏
那也可以再崩溃一点测试: .colSums(temp.m, 8,2)
那他就是从第一列开始取8个元素 不够取下一列
2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 = 44
10 + 11 + 3 + 4 + 5 + 6 + 7 + 8 = 54
(10,11这边还在第一列) (3...开始就是开始取第二列元素)
以上大概是这个函数的用法
至於你问的 temp.m[1:3,1:2] 产生出来的 跟那个函数没关系
你应该直接用colSums 前面不要加 "."
code:
colSums(temp.m[1:3,1:2])
就可以得到你想要的结果 9 12
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 36.231.134.137
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/R_Language/M.1444578927.A.8B2.html
※ 编辑: OGCKM (36.231.134.137), 10/11/2015 23:55:59
※ 编辑: OGCKM (36.231.134.137), 10/12/2015 00:00:34
1F:推 a78998042a: 感谢解惑! 10/12 02:17