如何将原子向量转换为可以在R中使用“ $”符号的递归向量?

时间:2018-08-31 20:03:46

标签: r dataframe

money_supply <-matrix(c(1,2.25,2.81,2,2.27,2.84,3,2.28,2.86,4,2.29,2.88,5,2.31,2.90,6,2.32,2.92,7,2.35,2.96,8,2.37,2.99,9,2.40,3.02,10,2.42,3.04,11,2.43,3.05,12,2.42,3.05,13,2.44,3.08,14,2.47,3.10,15,2.49,3.10,16,2.51,3.13,17,2.53,3.17,18,2.53,3.18,19,2.54,3.19,20,2.55,3.20),ncol=3,byrow=TRUE)
colnames(money_supply)<-c("Month","M2","M3")
rownames(money_supply)<-c(" ")
money_supply <- as.table(money_supply)
money_supply

money_supply<-as.data.frame(t(money_supply))

那是我的代码,我试图根据这些数据创建一个3x3的表格。它以表格形式弹出,但随后我无法计算数据。我想通过使用mean $ M2查找M2列的均值,但是它不起作用,错误提示$运算符对于原子向量无效,因此我将“ money_supply”转换为递归向量,但是我仍然可以从列M1和M2计算数据。有人可以帮我吗?

3 个答案:

答案 0 :(得分:1)

您要查找的内容在R中称为 data.frame

将数据矩阵转换为data.frame,然后调用mean(money_supply$M2)

money_supply <-matrix(c(1,2.25,2.81,2,2.27,2.84,3,2.28,2.86,4,2.29,2.88,5,2.31,2.90,6,2.32,2.92,7,2.35,2.96,8,2.37,2.99,9,2.40,3.02,10,2.42,3.04,11,2.43,3.05,12,2.42,3.05,13,2.44,3.08,14,2.47,3.10,15,2.49,3.10,16,2.51,3.13,17,2.53,3.17,18,2.53,3.18,19,2.54,3.19,20,2.55,3.20),ncol=3,byrow=TRUE)

money_supply <- as.data.frame(money_supply)

colnames(money_supply) <- c("Month", "M2", "M3")

mean(money_supply$M2)

或者,完全跳过矩阵部分:

money_supply <- data.frame(
    Month = 1:20, 
    M2    = seq(2.25, by=0.02, length.out=20),
    M3    = seq(2.81, by=0.03, length.out=20)
)

mean(money_supply$M2)

答案 1 :(得分:0)

只需尝试以下操作:"workbench.panel.defaultLocation": "right"M2的第二列

table money_supply

输出:

mean(money_supply[,2])

因此,您的总代码为:

[1] 2.4085

答案 2 :(得分:0)

我不确定这是您想要的,但是您可以尝试所谓的apply函数来获取有关data.frame的摘要(?apply中的更多信息)

money_supply <-matrix(c(1,2.25,2.81,2,2.27,2.84,3,2.28,2.86,4,2.29,2.88,5,2.31,2.90,6,2.32,2.92,7,2.35,2.96,8,2.37,2.99,9,2.40,3.02,10,2.42,3.04,11,2.43,3.05,12,2.42,3.05,13,2.44,3.08,14,2.47,3.10,15,2.49,3.10,16,2.51,3.13,17,2.53,3.17,18,2.53,3.18,19,2.54,3.19,20,2.55,3.20),ncol=3,byrow=TRUE)
colnames(money_supply)<-c("Month","M2","M3")
apply(money_supply[,c(2,3)],MARGIN = 2,FUN = mean) #MARGIN =2 means you are taking your function by columns
    M2     M3 
2.4085 3.0235