我正在尝试使用colSums
对列进行求和。所以我将data.frame转换为矩阵,以便值为数字,但是当我这样做时,值会改变。
考虑这个data.frame例如 -
X1 X2 X3 X4 X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20
1 <NA> 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0
2 <NA> 0 0 <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA> 0 <NA> 0 <NA> <NA> 0 0 0 0 0 0
3 0 0 <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA> 0 0 0 <NA> 0 0 0 0 0 0 0 0
4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
6 <NA> 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
(抱歉草率格式化) 成为这个data.matrix:
X1 X2 X3 X4 X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22
1 NA 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 1 1 1 1 1 1
2 NA 1 1 NA NA NA NA NA NA NA NA 1 NA 1 NA NA 1 1 1 1 1 1
3 1 1 NA NA NA NA NA NA NA NA 1 1 1 NA 1 1 1 1 1 1 1 1
4 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 2 2 2 2 2 2
5 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 2 2 2 2 2 2
6 NA 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
这就是我的代码:
dat=read.xlsx("data",1)
datat=t(CWA2.3)
df=data.frame(datat[c(9,12,15,18,21,24),])
dm=data.matrix(LaughCWA2.3)
dm
对不起,如果我犯了一个失礼;我是R的新手,这是我第一次发帖。
提前致谢。
答案 0 :(得分:1)
如果您想对各列求和(即每行一个总和),那么您希望使用rowSums
,而不是colSums
。要从输出中删除这些缺失值,请将选项na.rm
设置为TRUE
。
rowSums(dm, na.rm=TRUE)
有关此功能的详细信息,请参阅其R文档here。
欢迎来到StackOverflow并祝你好运! : - )