2014-09-25 89 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