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计算数据。有人可以帮我吗?
答案 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