28

既存のデータ フレーム「my_data」から新しいデータ フレーム「new_data」を作成するサンプル コードがあります。

new_data = NULL
n = 10 #this number correspond to the number of rows in my_data
conditions = c("Bas_A", "Bas_T", "Oper_A", "Oper_T") # the vector characters correspond to the target column names in my_data
for (cond in conditions){
    for (i in 1:n){
        new_data <- rbind(new_data, c(cond, my_data$cond[i]))
    }
}

問題は、my_data$cond(cond は変数であり、列名ではない) が受け入れられないことです。

ドル記号の後に変数値を使用して、データ フレームの列を呼び出すにはどうすればよいですか?

4

3 に答える 3

39

列にアクセスするには、次を使用します。

my_data[ , cond]

また

my_data[[cond]]

th 行には次のiようにアクセスできます。

my_data[i, ]

両方を組み合わせて目的の値を取得します。

my_data[i, cond]

また

my_data[[cond]][i]
于 2012-09-12T13:45:13.343 に答える
1

$個々の列オブジェクトではなく、列に対して機能します。これはベクトル化の一種です。コード

corrections$BookDate = as.Date(corrections$BookDate, format = "%m/%d/%Y")

BookDateテーブルの列の内容をcorrections文字列からDateオブジェクトに変換します。1回の操作、割り当てで実行します。

以下を実行すると、問題が解決します。

new_data <- rbind(new_data, c(cond, my_data$cond))
于 2016-07-10T19:16:48.463 に答える