[[Rの備忘録]] 例えば,あるデータフレームから,複数の列を取り除きたい場合,その列番号を指定する方法と,列名を指定する方法があるが, dat <- read.csv("category.csv", skip = 3, header=T) dat[1,] colnames(dat) ここで列名が Q1A1などの形式になっているとして, Q <- c(1, 2, 3, 3, 4, 4, 5, 6, 7, 8, 9, 9, 10, 10, 11, 13, 13, 14, 15) A <- c(2, 2, 2, 4, 2, 4, 1, 1, 1, 1, 1, 3, 1, 3, 2, 1, 2, 1, 1) 列名を表す文字ベクトルを作成し QA <- paste("Q", Q, "A", A, sep = "") 気持ちとしては dat <- dat[, colnames(dat) != QA] で結果を得たいのだが,そうはいかない模様. for(i in 1:length(QA)){ dat <- dat[ , colnames(dat) != QA[i]] } colnames(dat) と,ループしないといけない?何か間違っているか? 特定の行を除きたい場合も同様 for(i in 1:length(Textname)){ dat <- dat[dat$text != Textname[i] , ] } c