3

次のようなデータ フレームがあるとします。

 DL<-c("Dark52","Light-298","dark7","23_dark","The_light","Lights","77dark","9Light")
 Col1<-c(1,12,3,6,4,8,2,8)
 DF<-data.frame(Col1)
 row.names(DF)<-DL

行名の「暗い」要素または「明るい」要素を含む 2 番目の列を作成するにはどうすればよいですか?

したがって、最終結果は次のようになります

Col2<-c("Dark","Light","dark","dark","light","Light","dark","Light")
DF$Col2<-Col2


          Col1  Col2
Dark52       1  Dark
Light-298   12 Light
dark7        3  dark
23_dark      6  dark
The_light    4 light
Lights       8 Light
77dark       2  dark
9Light       8 Light

4

2 に答える 2

3

正規表現を使用する:

x <- gsub("[^a-zA-Z]", "", row.names(DF))
DF$Col2 <- "dark"
DF$Col2[agrep("light", x)] <- "light"

          Col1  Col2
Dark52       1  dark
Light-298   12 light
dark7        3  dark
23_dark      6  dark
The_light    4 light
Lights       8 light
77dark       2  dark
9Light       8 light

PS: 実行するつもりでしgsub("[^dark|light]", "", row.names(DF), ignore.case = TRUE)たが、 で失敗しましたThe_light

于 2013-07-27T21:55:15.717 に答える