既存のデータフレーム「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は変数であり、列名ではない)は受け入れられません。
ドル記号の後に変数値を使用して、データフレームの列を呼び出すにはどうすればよいですか?
列にアクセスするには、次を使用します。
my_data[ , cond]
または
my_data[[cond]]
i
th行には、次の方法でアクセスできます。
my_data[i, ]
両方を組み合わせて、目的の値を取得します。
my_data[i, cond]
または
my_data[[cond]][i]
get()
が必要だと思います。
例えば、get(x,list)
、ここでlist
はリストで、x
は変数(文字列でも可)で、_list$x
_と等しくなります。
ただし、get(x,list)
では、x
を変数にすることができますが、_$
_を使用すると、x
を変数にすることはできません。
多くの場合、列全体、つまりデータフレームから特定の1つの変数を選択します。たとえば、可変直径のすべての要素を選択する場合、これらの両方がトリックを実行します。
dataframe_name[,column_position]
dataframe_name[,"column_name"]
ただし、近道があります。列に名前がある場合は、$
記号を使用できます。
dataframe_name$column_name
$
は、個々の列オブジェクトではなく、列に対して機能します。これは、ベクトル化の形式です。コード
corrections$BookDate = as.Date(corrections$BookDate, format = "%m/%d/%Y")
BookDate
テーブルのcorrections
列の内容を文字列からDate
オブジェクトに変換します。割り当てという1つの操作で実行します。
以下を実行すると、問題が修正されます。
new_data <- rbind(new_data, c(cond, my_data$cond))