2017-03-06 146 views
1

我有一个数据帧bask.df,如下所示。取消R中的数据帧变量

 basko1 basko2 
1st  6  1 
2nd  12  1 
3rd  8  8 
4th  4  5 
5th  1  2 
6th  8  9 
7th  1  2 
8th  8  9 
9th  12  14 
10th  15  10 
11th  3  6 
12th  5  2 
13th  4  6 
14th  3  1 
15th  4  6 
16th  3  1 

我想添加名为total的第三列,它是basko1和basko2列中整数的总和。

当我R中尽力为:

bask.df['total'] <- as.numeric(bask.df['basko1']) + as.numeric(bask.df['basko2']) , 

它给我的错误作为

Error: (list) object cannot be coerced to type 'double'

是bask.df [basko1]和bask.df [basko2],这是看似是矢量,实际上是列表在这里?或者我还在做其他事情?

+2

尝试'bask.df $ basko1 + bask.df $ basko2'。 –

+1

你只需要'rowSums(bask.df)' – akrun

+0

是的,它可以工作,但我想了解他是否将数据框的变量作为列表存在的概念? – Sarang

回答

1

OP代码中的错误是因为将as.numeric应用于data.frame,即bask.df['basko1']我们仍然是data.frame且具有单列。该as.numeric可应用于vectormatrix

bask.df['total'] <- as.numeric(bask.df[,'basko1']) + as.numeric(bask.df[,'basko2']) 

在上面的代码,我们增加了,,使之vector或者它可以与[[bask.df[['bask01']]

紧凑的方式来完成将

bask.df['total'] <- with(bask.df, bask.o1 + basko2) 
+2

我会使用[['或'$'而不是依靠'''将单列dfs放入向量。当我不期待它时,这个“特色”让我无数次绊跌了。 –

+3

另外,'[['和'$'的意思是它也适用于那些可怕的东西。 –