我有一个数据框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],它们看似是矢量,实际上是作为列表存在吗?或者我做错了什么?
答案 0 :(得分:1)
OP代码中的错误是因为将as.numeric
应用于data.frame
,即bask.df['basko1']
我们仍然是data.frame
一列。 as.numeric
可以应用于vector
或matrix
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)