R 如何使用ColSums

R 如何使用ColSums,r,dataframe,sum,R,Dataframe,Sum,我有上面的data.frame^。我正在尝试创建一个新的data.frame,它只是每列的总和 G1G2Effect WEIGHT2 Sim1 Sim2 Sim3 Sim4 Sim5 Sim6 Sim7 Sim8 Sim9 Sim10 Sim11 Sim12 1 -0.0312 2.833103 -0.0312 -0.0312 0.0000 -0.0312 0.0312 0.0000 -0.0312 -0.0312

我有上面的data.frame^。我正在尝试创建一个新的data.frame,它只是每列的总和

G1G2Effect  WEIGHT2    Sim1    Sim2    Sim3    Sim4    Sim5    Sim6    Sim7    Sim8    Sim9   Sim10   Sim11   Sim12
1    -0.0312 2.833103 -0.0312 -0.0312  0.0000 -0.0312  0.0312  0.0000 -0.0312 -0.0312 -0.0312 -0.0312  0.0000 -0.0312
2    -0.0640 2.536790  0.0000 -0.0640 -0.0640 -0.0640 -0.0640 -0.0640 -0.0640 -0.0640 -0.0640 -0.0640 -0.0640 -0.0640
3     0.0420 3.309074  0.0420  0.0000  0.0000  0.0420  0.0420  0.0420  0.0420  0.0420  0.0420  0.0420  0.0420  0.0000
4     0.0332 2.476224  0.0332  0.0332  0.0332  0.0332  0.0332  0.0000  0.0332  0.0332  0.0332  0.0332 -0.0332  0.0332
5     0.0000 2.265289  0.0302  0.0302  0.0302  0.0000  0.0302  0.0000  0.0302 -0.0302  0.0302  0.0000  0.0302  0.0000
6     0.0000 1.272609  0.0116  0.0000  0.0000  0.0116  0.0000 -0.0116  0.0032 -0.0102  0.0101 

df2as.numeric/as.character
作用于
vector/matrix
而不是
data.frame
。我们需要遍历数据集并将其转换为
数值
,然后应用
总和

df2 <- colSums(as.numeric(as.character(df1)))

我们也可以使用
tidyverse

sapply(df1, function(x) sum(as.numeric(as.character(x)), na.rm = TRUE))

如果我们确实需要
colSums
,一个选项是将
data.frame
转换为
matrix
,这样
factor
类被转换为
character
,然后将其更改为
numeric
,将
dim
分配给原始数据集的维度,并获得
colSums

library(tidyverse)
df1 %>%
    mutate_all(funs(sum(as.numeric(as.character(.)), na.rm = TRUE)))

colSums(`dimi如果列是
factor
,请使用
lappy
执行此操作
lappy(df1,函数(x)as.numeric(as.character(x)))
是那些因素吗???-奇怪,您是否尝试过colSums(x,na.rm=FALSE)?@Sotos是的,你是对的。我一定是把它错当成了平均值。奇怪的是,一个只有数字的数据框被转换成了因子。我从来没见过before@Sotos如果你看最后一行,在某些情况下,它是空白的。可能这就是原因。也许OP可以提到
read.csv(“file.csv”,na.strings=”“)
所以我删除了我的答案。但我看不出你在原始问题中看到了什么因素问题?
colSums(`dim<-`(as.numeric(as.matrix(df1)), dim(df1)), na.rm = TRUE)