在R中取消列出数据帧变量

时间:2017-03-06 10:42:49

标签: r list dataframe coerce

我有一个数据框bask.df,如下所示。

     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],它们看似是矢量,实际上是作为列表存在吗?或者我做错了什么?

1 个答案:

答案 0 :(得分: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)