5

私はRで作業しており、リストの行を反復処理して、次のように名前で列の値を参照したいと考えています。

for(row in Data) {
    name <- row$name
    age <- row$age
    #do something cool here
}

私のデータは次のようになります。

name, age, gender, weight
Bill, 23, m, 134
Carl, 40, m, 178

これは些細なことであるべきだと私は知っていますが、私はそれについての助けを見つけることができません。よろしくお願いします。

これが私が扱っている生データです。前の表は例です。

structure(list(startingTemp = c(100L, 100L, 100L, 100L, 100L), 
    endingTemp = c(1L, 1L, 1L, 1L, 1L), movesPerStep = c(200000L, 
    100000L, 20000L, 10000L, 2000L), coolingCoefficient = c(0.99, 
    0.99, 0.99, 0.99, 0.99), numberTempSteps = c(459L, 459L, 
    459L, 459L, 459L), costPerRun = c(91800000L, 45900000L, 9180000L, 
    4590000L, 918000L)), .Names = c("startingTemp", "endingTemp", 
"movesPerStep", "coolingCoefficient", "numberTempSteps", "costPerRun"
), row.names = c(NA, 5L), class = "data.frame")
4

1 に答える 1

12

あなたはこれを使用して行うことができますapply

apply(Data, 1, function(row) {
    name <- row["name"]
    age <- row["age"]
    #do something cool here
})

これは通常、関数が返すものに応じて、新しいベクトル、行列、またはリストを返すために使用されます。たとえば、関数numberTempSteps / costPerRunを各行に適用するとします。あなたはするでしょう:

apply(Data, 1, function(row) row["numberTempSteps"] / row["costPerRun"])

(この例では、単に実行することもできますData$numberTempSteps / Data$costPerRun)。

于 2012-09-06T06:29:36.887 に答える