保存循环';在R中的向量中的s输出
我有一个.cvs文件,它由4列和120行组成。 我试图遍历每一行,如果我在第三列中看到一个“1”(这里称为“Dam”),我想将该行保存在一个名为“Dam.one”的矩阵中 以下是我目前的代码:保存循环';在R中的向量中的s输出,r,loops,if-statement,R,Loops,If Statement,我有一个.cvs文件,它由4列和120行组成。 我试图遍历每一行,如果我在第三列中看到一个“1”(这里称为“Dam”),我想将该行保存在一个名为“Dam.one”的矩阵中 以下是我目前的代码: DamType = c( "Dam.one", "Dam.two", "Dam.three", "NoDam.one", "NoDam.two", "NoDam.three") for (i in 1:120) { if (mercury.raw[i,]["Dam"] == 1) {
DamType = c( "Dam.one", "Dam.two", "Dam.three", "NoDam.one", "NoDam.two", "NoDam.three")
for (i in 1:120) {
if (mercury.raw[i,]["Dam"] == 1) {
if (mercury.raw[i,]["Type"] == 1){
DamType["Dam.one"] <- mercury.raw[i,]
}}}
我希望DamType[“Dam.one”]
等于:
Lake Mercury Dam Type
1 ALLEN.P 1.080 1 1
2 ALLIGATOR.P 0.025 1 1
我不知道它出了什么问题。
非常感谢您的帮助。矩阵不能存储在向量中。列表可以存储多个矩阵(本例中为数据帧)。看起来您正在尝试对数据进行子集划分,不需要为循环设置
DamType <- list()
DamType[["Dam.one"]] <- mercury.raw[mercury.raw$Dam == 1 & mercury.raw$Type == 1, ]
> DamType$Dam.one
Lake Mercury Dam Type
1 ALLEN.P 1.080 1 1
2 ALLIGATOR.P 0.025 1 1
DamType我建议更多地熟悉R和常见的包,比如dplyr
library(dplyr)
dam_grouped <- mercury.raw %>% group_by(Dam)
库(dplyr)
dam_按%group_分组(dam)
我也不知道。你能解释一下你的错误吗?也许还可以告诉我们什么是水星原汁原味?看到了吗?马诺萨克什么?他没有名为Dam的变量。一个
,“Dam”==1
总是计算为FALSE
@dash2我输入了错误的DamType
,而不是mercury.raw
。从他的问题中,他在第三栏(“Dam”)中搜索他看到的1
。我假设有时他没有一个,真的只是想对他的数据进行子集。DamType是一个字符向量,DamType[“Dam.one”]
应该是什么?我添加了更多信息。我希望这能使我的问题更清楚。
library(dplyr)
dam_grouped <- mercury.raw %>% group_by(Dam)