首页 > 解决方案 > 如何用数据框中的数字替换正则表达式

问题描述

我有一个数据框,其中包含一系列信息,这些信息通过他们当前的董事会成员身份识别一组人。它看起来像这样:

company_board <- c("company1", "company2", "company3; company 1", "", "")
nonprofit_board <- c("nonprofit1", "", "nonprofit5; nonprofit2", "", "nonprofit3")
df <- data.frame(company_board, nonprofit_board, stringsAsFactors = FALSE)

如果单元格中有信息,我想将它们转换为简单的 1,如果没有记录数据,我想将它们转换为 0。所以对于我刚刚给出的例子:

company_board <- c("1", "1", "1", "0", "0")
nonprofit_board <- c("1", "0", "1", "0", "1")
df <- data.frame(company_board, nonprofit_board, stringsAsFactors = FALSE)

我知道如何使用str_extractwith[:alnum:]来获取应该为 1 的单元格,但我不知道如何将这些单元格替换为 1(其余的替换为 0)。任何帮助将不胜感激!

标签: r

解决方案


我们也可以转换成直接matrix申请nchar

+(nchar(as.matrix(df)) > 0)
#     company_board nonprofit_board
#[1,]             1               1
#[2,]             1               0
#[3,]             1               1
#[4,]             0               0
#[5,]             0               1

推荐阅读