对于我的问题,我得到了 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
对于这个 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,然后递增它 下一个 否则如果(我==“”) 下一个 }