我想将月份的名称粘贴到我的数据集的月平均气温前面,但我try 的都不起作用.我不能使用非常复杂的代码,因为它是针对我的课程的,而我们是从基础开始的.对于这个错误,有人有简单的解决方案吗?

以下是我要运行的完整程序:

for(i in raw[2:13]) {
  avg <- round(mean(i), digits = 1)
  monthavg <- cat(colnames(i), ":", avg, "ºC \n")
}

这就是我想要的结果:

January: -9.2 ºC 
February: -7.3 ºC 
March: -3 ºC 
April: 4.2 ºC 
May: 9.6 ºC 
June: 13.4 ºC 
July: 16.4 ºC 
August : 15.4 ºC 
September: 10.7 ºC 
October: 5.4 ºC 
November: -2.3 ºC 
December: -6.8 ºC 

"colname"是需要调试的部分.以下是我try 过的不同变体中仅有的3个结果:

第一次try :

> for(i in raw[2:13]) {
+   avg <- round(mean(i), digits = 1)
+   monthavg <- cat(month.name, ":", avg, "ºC \n")
+ }
January February March April May June July August September October November December : -9.2 ºC 
January February March April May June July August September October November December : -7.3 ºC 
January February March April May June July August September October November December : -3 ºC 
January February March April May June July August September October November December : 4.2 ºC 
January February March April May June July August September October November December : 9.6 ºC 
January February March April May June July August September October November December : 13.4 ºC 
January February March April May June July August September October November December : 16.4 ºC 
January February March April May June July August September October November December : 15.4 ºC 
January February March April May June July August September October November December : 10.7 ºC 
January February March April May June July August September October November December : 5.4 ºC 
January February March April May June July August September October November December : -2.3 ºC 
January February March April May June July August September October November December : -6.8 ºC 

第二次try :

> for(i in raw[2:13]) {
+   avg <- round(mean(i), digits = 1)
+   monthavg <- cat(colnames(i), ":", avg, "ºC \n")
+ }
 : -9.2 ºC 
 : -7.3 ºC 
 : -3 ºC 
 : 4.2 ºC 
 : 9.6 ºC 
 : 13.4 ºC 
 : 16.4 ºC 
 : 15.4 ºC 
 : 10.7 ºC 
 : 5.4 ºC 
 : -2.3 ºC 
 : -6.8 ºC 

第三次try :

> for(i in raw[2:13]) {
+   avg <- round(mean(i), digits = 1)
+   monthavg <- cat(colnames(raw[i]), ":", avg, "ºC \n")
+ }
 : -9.2 ºC 
Error in `[.default`(raw, i) : 
  only 0's may be mixed with negative subscripts

推荐答案

我将根据您的代码假设您的data.Frame是什么样子的,因为没有提供示例.


raw = data.frame(
  Jan=rnorm(12),
  Feb=rnorm(12),
  Mar=rnorm(12)
)

您只需更改在循环期间引用列的方式.为了便于引用,我通常循环遍历数字而不是数据帧.

for(i in 1:3) {
  avg <- round(mean(raw[,i]), digits = 1)
  monthavg <- cat(colnames(raw[i]), ":", avg, "ºC \n")
}

colnames的替代用法:


month.names=colnames(raw)

for(i in 1:3) {
  
  month = month.names[i]
  
  avg <- round(mean(raw[,month]), digits = 1)
  monthavg <- cat(month, ":", avg, "ºC \n")
}

R相关问答推荐

指定要保留在wrap_plots中的传奇

按自定义数字模式对变量名称排序

从具有随机模式的字符串中提取值

从嵌套列表中智能提取线性模型系数

计算R中的威布尔分布的EDF

MCMC和零事件二元逻辑回归

在使用ggroove后,将图例合并在gplot中

获取列中值更改的行号

ggplot的轴标签保存在officer中时被剪切

使用case_match()和char数组重新编码值

使用R闪光显示所有数据点作为默认设置

在rpart. plot或fancyRpartPlot中使用带有下标的希腊字母作为标签?

迭代到DataFrame列并获得成对的值列表(col1->;col2、col2->;col3、col3->;col4等)的正确方法.

使用rvest从多个页面抓取时避免404错误

更新R中的数据表(使用data.table)

自定义gggraph,使geom_abline图层仅在沿x轴的特定范围内显示

按组和连续id计算日期差

计算来自单独分组的分幅的值的百分位数

如何使用grepl()在数据帧列表中 Select 特定字符串?

如何在刻面和翻转堆叠条形图中对齐geom_text()