任何人都可以帮我解决这个 for 循环和 if 语句代码吗?

问题描述 投票:0回答:1

对于我的问题,我得到了 for 循环代码的 3 个 if 语句/条件。

问题:使用 for 循环和 if 控制语句列出从泰坦尼克号南安普顿 (S) 出发的 50 岁或以上女性的非空家乡目的地

home.dest
age
,请参阅
titanic
包。

我不明白如何启动定义了

i
的 for 循环语句。我还尝试跳过打印主目标列的空单元格。

这是我迄今为止尝试过的:

for (i in 1) {
  if (titanicDataset$age[i] >= 50 & (titanicDataset$embarked[i] == "S") & titanicDataset$sex == "female")
  {(print(titanicDataset$home.dest[i]))}
  else if (i == "")
    next
}

问题

if (titanicDataset$age[i] >= 50 & (titanicDataset$embarked[i] == ) 中出现错误: 条件长度 > 1

r for-loop if-statement
1个回答
0
投票

对于这个 for 循环,最好使用示例数据集提出问题。使用整数作为命名数组或混合访问字典的方式不是一个好主意。

首先,你正在做一些&,尝试使用比较&&来运行if。

假设您的数据是一个数组,并且您需要访问第一个元素,该数组是一个零索引数组,其中有 1 个元素,那么答案是

titanicDataset$home.dest[i-1] // 这将在位置 0 处获取数组中的第一个第一个元素

for (i in 1) { if (titanicDataset$age[i] >= 50 & (titanicDataset$embarked[i] == "S") && titanicDataset$sex == "女") {(print(titanicDataset$home.dest[i]))} 否则如果(我==“”) 下一个 }

另一种方法是使用 for 和计数器或 while

var i = 0 while (i < 1) { if (titanicDataset$age[i] >= 50 & (titanicDataset$embarked[i] == "S") && titanicDataset$sex == "女") {(print(titanicDataset$home.dest[i++]))} // 这会将 i 用作 0,然后递增它 下一个 否则如果(我==“”) 下一个 }

© www.soinside.com 2019 - 2024. All rights reserved.