1

我有一个数据框 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],看似向量,实际上是作为列表存在吗?或者我做错了什么?

4

1 回答 1

1

OP 代码中的错误是因为应用as.numeric到一个data.framebask.df['basko1']我们仍然是data.frame一个单列。as.numeric可以vector应用于或matrix

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

在上面的代码中,我们添加,了 makevector或者可以使用[[ie来完成bask.df[['bask01']]

一种紧凑的方法是

bask.df['total'] <- with(bask.df, bask.o1 + basko2)
于 2017-03-06T10:48:07.543 回答