如何select列按R中一行中的值
How to select columns by values in a row in R
我有一个大数据框,用于标记字符串中出现的三元组,其中字符串是行,三元组是列,值标记一个三元组是否出现在字符串中。
所以像这样:
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
我想获取给定行或给定字符串的所有 columns/trigrams。
因此对于第 2 行,字符串 'that',结果将是一个如下所示的数据框:
str tha hat
1 this 0 0
2 that 1 1
3 chat 0 1
4 chin 0 0
我该怎么做?
这将为您提供所需的输出 df。
givenStr <- "that"
row <- df[df$strs==givenStr,]
df[,c(1,1+which(row[,-1]==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
我有一个大数据框,用于标记字符串中出现的三元组,其中字符串是行,三元组是列,值标记一个三元组是否出现在字符串中。
所以像这样:
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
我想获取给定行或给定字符串的所有 columns/trigrams。
因此对于第 2 行,字符串 'that',结果将是一个如下所示的数据框:
str tha hat
1 this 0 0
2 that 1 1
3 chat 0 1
4 chin 0 0
我该怎么做?
这将为您提供所需的输出 df。
givenStr <- "that"
row <- df[df$strs==givenStr,]
df[,c(1,1+which(row[,-1]==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