以前の質問を 20 分ほど調べましたが、探しているものが見つかりませんでした。名前のリストに基づいてサブセット化したい大きなデータ フレームがありますが、データ フレーム内の名前には、リストに示されていない接尾辞が含まれている場合もあります。
言い換えれば、次のことを行うためのより簡単な一般的な方法 (無限の数の接尾辞の場合) はありますか?
data <- data.frame("name"=c("name1","name1_post1","name2","name2_post1",
"name2_post2","name3","name4"),
"data"=rnorm(7,0,1),
stringsAsFactors=FALSE)
names <- c("name2","name3")
subset <- data[ data$name %in% names | data$name %in% paste0(names,"_post1") | data$name %in% paste0(names,"_post2") , ]
@Arunの答えに応えて。私のデータの名前には実際には複数のアンダースコアが含まれているため、問題がより複雑になります。
data <- data.frame("name"=c("name1_target_time","name1_target_time_post1","name2_target_time","name2_target_time_post1",
"name2_target_time_post2","name3_target_time","name4_target_time"),
"data"=rnorm(7,0,1),
stringsAsFactors=FALSE)
names <- c("name2_target_time","name3_target_time")
subset <- data[ data$name %in% names | data$name %in% paste0(names,"_post1") | data$name %in% paste0(names,"_post2") , ]