名前のリストがあるとします。new.var.names <- c("a", "b", "c")
。そして私は、データフレームDFをしている - のは、このことを仮定しよう - 含まれているかは重要ではありません。今、私は新しい変数を追加し、リストに自分の名前、new.var.names
をベースにするrの名前リストに基づいて新しい変数に名前を効率的に割り当てる
StudyID <- c('sid124','sid66537','sid78848')
age <- c(87, 63, 45)
bmi <- c(24.3,19.2,23.5)
data <- data.frame(StudyID, age, bmi)
。私のようなものだろう:
data$NewVar <- data$bmi/data$age
をしかし、私は、複数の新しい変数を作りたいので、単純に私はそうのようにこれらを作成します。
data$a <- data$bmi/data$age
data$b <- data$bmi/data$age
data$c <- data$bmi/data$age
は明らかにこれは現実世界の私のように、効率的ではありませんリストはかなり長く、何百ものアイテムです。だから私は次のように何かをしたいと思います:
for (v in new.var.names){
data$v <- data$bmi/data$age
}
しかし、それは動作しません - 、それは変数v
を作成するよう - 私が試したし、何とか私は、したがって、それはないだろうポスト:-Pを知っていました私は変数a, b, c
を作成したいと思います。それにはどうしたらいいですか?
おかげで、最高の、
サンダー
ああありがとうございます。ありがとう。しかし、それは動作しません。私はメッセージを受け取っています: '[< - '( '* tmp *'、、c(v)、value = cのエラー(2L、1L、1L、1L、2L、1L、1L、: 無効なサブセット'(私はまったく同じデータを作成したくない、私はちょうど現在の例として他の何かを考えることができなかった...) –
あなた自身の例のデータを使用するとエラーなしで動作するはずです。 – user3640617
ああ、そうですね、実際のデータで答えをテストしたが、うまくいかなかった。他の状況ではそうでないということではない。どちらの場合でも、両方の答えが他の人にとって有益かもしれない。 ! –