为什么在数据frame1 * data frame2返回数据帧时使用c(数据frame1 * data frame2)返回一个列表

时间:2018-03-07 15:07:53

标签: r frame

在R中,当我在c()函数中乘以两个数据帧时,我得到一个列表作为输出但是想要返回一个数据帧我该怎么做呢。

专门测试它

  

str(c(Diesel_Col_Monthly_Prop_df [-1] * Product_Prop_Mch_df [,2]))       清单12        $ Jan:num [1:14] 0.0335 0.0335 0.0335 0.0335 0.0335 ...        $ Feb:num [1:14] 0.0365 0.0365 0.0365 0.0365 0.0365 ...        $ Mar:num [1:14] 0.0581 0.0581 0.0581 0.0581 0.0581 ...        $ Apr:num [1:14] 0.0936 0.0936 0.0936 0.0936 0.0936 ...        $ May:num [1:14] 0.0783 0.0783 0.0783 0.0783 0.0783 ...        $ Jun:num [1:14] 0.0616 0.0616 0.0616 0.0616 0.0616 ...        $ Jul:num [1:14] 0.0713 0.0713 0.0713 0.0713 0.0713 ...        $ Aug:num [1:14] 0.107 0.107 0.107 0.107 0.107 ...        $ Sep:num [1:14] 0.0987 0.0987 0.0987 0.0987 0.0987 ...        $ Oct:num [1:14] 0.0654 0.0654 0.0654 0.0654 0.0654 ...        $ Nov:num [1:14] 0.034 0.034 0.034 0.034 0.034 ...        $ Dec:num [1:14] 0.0326 0.0326 0.0326 0.0326 0.0326 ...

> str (Diesel_Col_Monthly_Prop_df [-1] * Product_Prop_Mch_df [ ,2])
'data.frame':   14 obs. of  12 variables:
 $ Jan: num  0.0335 0.0335 0.0335 0.0335 0.0335 ...
 $ Feb: num  0.0365 0.0365 0.0365 0.0365 0.0365 ...
 $ Mar: num  0.0581 0.0581 0.0581 0.0581 0.0581 ...
 $ Apr: num  0.0936 0.0936 0.0936 0.0936 0.0936 ...
 $ May: num  0.0783 0.0783 0.0783 0.0783 0.0783 ...
 $ Jun: num  0.0616 0.0616 0.0616 0.0616 0.0616 ...
 $ Jul: num  0.0713 0.0713 0.0713 0.0713 0.0713 ...
 $ Aug: num  0.107 0.107 0.107 0.107 0.107 ...
 $ Sep: num  0.0987 0.0987 0.0987 0.0987 0.0987 ...
 $ Oct: num  0.0654 0.0654 0.0654 0.0654 0.0654 ...
 $ Nov: num  0.034 0.034 0.034 0.034 0.034 ...
 $ Dec: num  0.0326 0.0326 0.0326 0.0326 0.0326 ...

1 个答案:

答案 0 :(得分:0)

c(DF)其中DF是数据框始终返回列表,DF * DF是数据框,因此c(DF * DF)返回列表。如果您想要数据框,请不要使用c

使用内置数据框BOD

> str(BOD)
'data.frame':   6 obs. of  2 variables:
 $ Time  : num  1 2 3 4 5 7
 $ demand: num  8.3 10.3 19 16 15.6 19.8
 - attr(*, "reference")= chr "A1.4, p. 270"

> str(BOD * BOD)
'data.frame':   6 obs. of  2 variables:
 $ Time  : num  1 4 9 16 25 49
 $ demand: num  68.9 106.1 361 256 243.4 ...

> str(c(BOD))
List of 2
 $ Time  : num [1:6] 1 2 3 4 5 7
 $ demand: num [1:6] 8.3 10.3 19 16 15.6 19.8

> str(c(BOD*BOD))
List of 2
 $ Time  : num [1:6] 1 4 9 16 25 49
 $ demand: num [1:6] 68.9 106.1 361 256 243.4 ...