【问题标题】:Trouble storing names into an object using for-loop in R在 R 中使用 for 循环将名称存储到对象中时遇到问题
【发布时间】:2020-07-16 20:22:29
【问题描述】:

我无法在 for 循环中打印出名称。这就是我所拥有的。我正在尝试打印年龄小于或等于 14 岁的乘客的姓名。

x <- c()
for(i in length(titanicDataset$name)){
if(titanicDataset$age[i] <= 14){
x[i] <- titanicDataset$name[i]
}
}
print(x)

它只是打印 NULL

【问题讨论】:

  • print() 应该在最后一次 curl 之前的循环内。

标签: r for-loop if-statement


【解决方案1】:

length 返回单个值。相反,它应该是1:lengthseq_along

x <- character(nrow(titanicDataset))
for(i in seq_along(titanicDataset$name)) {
      if(titanicDataset$age[i] <= 14){
      x[i] <- titanicDataset$name[i]
   }
  }

我们不需要循环,因为它们是矢量化的

with(titanicDataset, name[age <= 14])             

【讨论】:

  • 非常感谢。我的大脑现在已经到了极限了哈哈
【解决方案2】:

您必须指定循环范围(1:length(...)),

并将新数据连接到x

x <- c()
for(i in 1:length(titanicDataset$name)){
  if(titanicDataset$age[i] <= 14){
    x <- c(x, titanicDataset$name[i])
  }
}
print(x)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-04-04
    • 2023-03-06
    • 2019-02-02
    • 2019-09-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多