我有这个矩阵SELECT u.user_name, u.email,
GROUP_CONCAT(info) AS info,
GROUP_CONCAT(address_field1) AS address_field1
FROM user u
INNER JOIN info i ON (u.user_id = i.user_id)
INNER JOIN address a ON (u.user_id = a.user_id)
GROUP BY u.user_name ASC
| user_name | email | info | address_field1 |
|-----------|--------------|-------------------|----------------------|
| name1 | one@ex.tld | text1,text1 | City A,City B |
| name2 | two@ex.tld | text2,text2,text2 | City C,City D,City E |
| name3 | three@ex.tld | text3 | City F |
[1x15],我想使用函数mat=matrix(rnorm(15), 1, 15)
来计算matix apply
中的行总和
e.g。
mat
这是我的代码:
[,1] [,2] [,3] [,4]
[1,] 1 2 3 0 #the sum is then 6
以下是错误:应用错误(mat [,1:15],1,总和):dim(X)必须具有正长度
如果我创建两行或更多行,则mat=matrix(rnorm(15), 1, 15)
apply(mat[,1:15],1,sum)
函数有效。
e.g。
apply
我应该对函数进行哪些更改,以便即使对于一行矩阵也可以使用?
答案 0 :(得分:2)
问题在于,当您调用元素1到15时,您将矩阵转换为矢量,因此它没有任何尺寸。只需在apply调用中使用as.matrix
即可使其正常工作。
mat=matrix(rnorm(15), 1, 15)
apply(as.matrix(mat[,1:15]),2,sum)
答案 1 :(得分:1)
请执行此操作,然后阅读?Extract
帮助页面。该页面有大量关于R最基本功能的信息,即“[”和“[[”。
apply(mat[ ,1:15, drop=FALSE],1,sum) # preserves the matrix class
[1] -1.621488