2014-09-25 90 views
0

我觉得有点尴尬,因为我试图在R中添加两列来获得产品。在R中总计两列

我已经试过

sum(col1,col2) 

但这返回

Error in Summary.factor(c(49L, 48L, 47L, 46L, 46L, 45L, 45L, 44L, 43L, : 
    sum not meaningful for factors 

我认为这将非常简单!两列都包含整数。

+1

请包括'dput(头(yourdata))'在你的问题的结果。 – 2014-09-25 19:43:10

+1

错误消息似乎相当丰富。如果你不知道R中的因素是什么,那么你需要回到你的介绍性文字并做更多的自学。 – 2014-09-25 19:44:56

+1

“我试图在R中添加两列来获取产品” - 嗯? – joran 2014-09-25 19:47:22

回答

10

sum功能将添加的所有数字在一起,以产生一个单一的数字,而不是一个矢量(好,至少不是长度大于1的向量)。

看起来好像至少有一列是一个因素。你可以将它们转换成数字向量通过检查该

head(as.numeric(data$col1)) # make sure this gives you the right output 

如果这看起来正确,做

data$col1 <- as.numeric(data$col1) 
data$col2 <- as.numeric(data$col2) 

您可能需要他们先转换成字符。在这种情况下,

data$col1 <- as.numeric(as.character(data$col1)) 
data$col2 <- as.numeric(as.character(data$col2)) 

很难说出你应该做什么而不能看到你的数据。

一旦列是数字的,你只需要做

data$col3 <- data$col1 + data$col2 
+1

你会如何处理的NA这些列中的一个?您是否需要在添加之前将它们替换为0,或者您可以一次执行此操作吗? – 2016-02-19 17:59:46

+0

这取决于你想如何处理NAs。如果你想他们是零,你需要你做加法之前做任何一点。 – blakeoft 2016-11-02 16:59:32

0

这可能是因为您的一列或两列可能有一个因素,或者更可能是您的列可能被格式化为因子。请你给str(col1)和str(col2)一个试试吗?这应该告诉你这些列是什么格式。

我不确定你是否想要添加一列的行来产生一个新的列或者只是两列中的所有数字来获得一个数字。

+0

喜鲁本我要添加列的电池1 1至2列的电池1等等等等 – brucezepplin 2014-09-25 19:53:55