2

以下はデータセットです。2つ作成する必要があります。

ID <- 1:4
pos <- c(0, 245, 567, 871)
A1 <- c("A/B", "A/A", "B/B", "A/A")
B1 <- c("B/B", "C/C", "C/B", "D/A")
C1 <- c("B/B", "C/C", "-/-", "D/A")
mydf2 <- data.frame (ID, A1, B1, C1, pos)

1つのデータセットに2:4列を含めることに興味があります

mydf3 <- mydf2[,2:4]

次に、残りの変数を別のデータフレームに配置します。

mydf4 <-  mydf2[, names(mydf2) != names(mydf3)]

明らかな何かが欠けていますか?

Warning message:
In names(mydf2) != names(mydf3) :
  longer object length is not a multiple of shorter object length
4

1 に答える 1

3

代わりに必要なもの:

mydf4 <- mydf2[, ! names(mydf2) %in% names(mydf3)]

!=オペレーターが2つのベクトル引数の要素ごとの比較を実行するため、エラーメッセージが表示されます。ベクトルの長さが異なる場合は、短い方のベクトルをリサイクルして、長い方のベクトルの長さに埋めます。長さ3と5のベクトルを渡しましたが、どちらの数値も他方の除数ではないため、実際にはそのリサイクル動作を望まない可能性があり、それが何をしているのかを警告しました。2:4 != 1:6( toの結果を比較して、2:4 != 1:5これがデバッグするのにさらに不可解であった可能性があることを確認してください。)

于 2012-04-27T19:17:33.500 に答える