0
私は以下の特性を持つデータフレームを持っています。grepとrとの数値比較を組み合わせる
names<-c("test1", "test2", "test3", "not4", "test5")
age<-as.numeric(c(1,2,3,4,5))
identifier<-as.numeric(c(0,0,0,0,0))
df<-data.frame(names,age, identifier)
次のコードを使用して、testやage> = 3のような名前を含む行に対して識別子を1に設定しようとしています。
df$identifier[grep(".*test.*", df$names) & df$age>=3,]<-1
Error in df$identifier[grep(".*test.*", df$names) & df$age >= 3, ] :
incorrect number of dimensions
In addition: Warning message:
In grep(".*test.*", df$names) & df$age >= 3 :
longer object length is not a multiple of shorter object length
次のコードは、あなたが余分を追加するので、あなたのコードがエラーを与えた
df[grep(".*test.*", df$names) & df$age>=3,]
names age identifier
3 test3 3 0
4 not4 4 0
5 test5 5 0
Warning message:
In grep(".*test.*", df$names) & df$age >= 3 :
longer object length is not a multiple of shorter object length
あなたのコードは、 '[]'の中に余分な '、'を追加したのでエラーが発生しました。これは、行インデックスでサブセット化しようとするときに必要です。 –
@ joel.wilsonが答えになるはずです。 –