1

我正在尝试将布尔列添加到我的数据框中,然后根据这些值进行汇总。看起来很简单。

该逻辑基于现有列中的搜索字符串。所以我想我首先使用 grep 创建向量,识别我的“好”行......

v1<-grep("bingo",df$col1)
v2<-grep("bingo",df$col2)

> head(v1)
[1]   64  741 1657 1905 2010 4116
> head(v2)
[1]  28  68 181 191 296 667

然后我想我可以使用某种合并/绑定/转换函数将列附加到原始数据框。

df$add1<-cbind(df,v1)
df$add2<-cbind(df,v2)

但这不起作用,因为“参数意味着不同的行数”

知道怎么做吗?

4

2 回答 2

3

您可能会发现grepl(逻辑 grep)更易于使用:

df$v1 <- grepl("bingo",df$col1)
df$v2 <- grepl("bingo",df$col2)
于 2013-06-24T23:14:47.820 回答
1

如果v1是应该是的行TRUE,您可以:

df$bingo <- FALSE
df$bingo[v1] <- TRUE
于 2013-06-24T23:02:40.193 回答