首页 > 解决方案 > 我想使用 for 循环打印我的 tibble 的平均值和名称

问题描述

这是我的小标题:

mytibble <- tibble(
  height = c(73.84701702, 68.78190405, 74.11010539, 71.7309784, 69.88179586, 67.25301569, 68.78508125, 68.34851551, 67.01894966, 63.45649398, 71.19538228, 71.64080512, 64.76632913, 69.2830701, 69.24373223, 67.6456197, 72.41831663, 63.97432572, 69.6400599,
             67.93600485, 67.91505019, 69.43943987, 66.14913196, 75.20597361, 67.89319634, 68.1440328, 69.08963143, 72.80084352, 67.42124228, 68.49641536),
  weight = c(241.8935632, 162.3104725, 212.7408556, 220.0424703, 206.3498006, 152.2121558, 183.9278886, 167.9711105, 175.9294404, 156.3996764, 186.6049256, 213.7411695, 167.1274611, 189.4461814, 186.434168, 172.1869301, 196.0285063, 172.8834702, 185.9839576, 182.426648, 174.1159291, 197.7314216, 149.173566, 228.7617806, 162.0066518, 192.3439766, 184.4351744, 206.8281894, 175.2139224, 154.3426389),
  eye_colour = c("blue", "yellow", "red", "yellow", "brown", "blue", "blue", "red", "brown", "blue-gray", "blue", "blue", "blue", "brown", "black", "orange", "hazel", "blue", "brown", "yellow", "brown", "red", "red", "brown", "blue", "orange", "blue", "brown", "brown", "black"),
  birth_year = c(1930, 1936, 1941, 1946, 1941, 1925, 1941, 1923, 1918, 1886, 1936, 1911, 1907, 1900, 1923, 1926, 1863, 1927, 1867, 1940, 1885, 1923, 1926, 1941, 1898, 1894, 1932, 1921, 1930, 1883),
)

和我的 for 循环

for (column in colnames(mytibble)) {
  if (is.numeric(mytibble[[column]])) 
    print(names(mytibble[[column]])) +
    print(mean(mytibble[[column]]))
}

当我使用它来打印名称,然后是数字列的平均值时,它只打印空值,然后是平均值。

标签: r

解决方案


这是否有效:

> for(i in 1:ncol(mytibble)){
+   if(is.numeric(mytibble[[i]])){
+     print(names(mytibble[i]))
+     print(mean(mytibble[[i]]))
+   }
+ }
[1] "height"
[1] 69.11708
[1] "weight"
[1] 185.2531
[1] "birth_year"
[1] 1917.333
> 

推荐阅读