如何将数据集中列中的字符转换为数字?

How to turn characters into numbers from a column in a dataset?

我有以下形式的数据框:

 Date     equity company  press Categorization  Year Month Event greenwashing
  <chr>     <dbl> <chr>    <chr> <chr>          <dbl> <chr> <dbl> <chr>       
1 07/30/21   153. JPMorgan NA    NA                NA NA       NA 0           
2 07/29/21   153  JPMorgan NA    NA                NA NA       NA 0           
3 07/28/21   152. JPMorgan NA    NA                NA NA       NA 0           
4 07/27/21   151. JPMorgan NA    NA                NA NA       NA 0           
5 07/26/21   152. JPMorgan NA    NA                NA NA       NA 0           
6 07/23/21   151. JPMorgan NA    NA                NA NA       NA 0

在 'greenwashing' 列中,有一些变量采用格式字符,例如:The Guardian、Financial Times 等。我需要把这些字符变成 1.

我已经尝试命名单词列表并使用 if else 代码:

word.list = c("Financial Times",
              "The Guardian", 
              "Mena Report",
              "States News Service",
              "US Newshire",
              "DeSmogBlog",
              "PR Newshire",
              "The New York Times")
if(word.list){
  print("1")

使用 tidyverse: 假设您的数据框是 df,正在处理您的尝试

library(tidyverse)

df <- mutate(df, greenwashing = ifelse(greenwashing %in% word.list, 1, greenwashing)

你可以试试-

df$greenwashing <- as.integer(df$greenwashing %in% word.list)

这会将所有 word.list 值更改为 1,其余值更改为 0

我们可以通过 +

将逻辑值转换为整数来轻松做到这一点
df$greenwashing <- +(df$greenwashing %in% word.list)