4

文字列内のトリグラムの出現をマークする大きなデータ フレームがあります。ここで、文字列は行、トリグラムは列、値はトリグラムが文字列内に出現するかどうかを示します。

このようなもの:

strs <- c('this', 'that', 'chat', 'chin')
thi <- c(1, 0, 0, 0)
tha <- c(0, 1, 0, 0)
hin <- c(0, 0, 0, 1)
hat <- c(0, 1, 1, 0)
df <- data.frame(strs, thi, tha, hin, hat)
df

#  strs thi tha hin hat
#1 this   1   0   0   0
#2 that   0   1   0   1
#3 chat   0   0   0   1
#4 chin   0   0   1   0

特定の行または特定の文字列が 1 であるすべての列/トリグラムを取得したいと考えています。

したがって、行 2 の文字列 'that' の場合、結果は次のようなデータ フレームになります。

  str tha hat
1 this  0   0
2 that  1   1
3 chat  0   1
4 chin  0   0

どうすればこれを行うことができますか?

4

2 に答える 2

1

ワンライナーで:

df[as.logical(df[df$strs=='that',])]

#  strs tha hat
#1 this   0   0
#2 that   1   1
#3 chat   0   1
#4 chin   0   0
于 2015-05-06T08:20:25.627 に答える