4

有一个包含大量原始数据的 csv 数据文件,如下所示:

data.frame(
  id=1:4,
  data=c(
         "it's a programming language",
         "this data is JUNK",
         "refer www.google.com",
         "check for more information")
)

我需要处理这些数据,并检查每一行的全部大写序列,并用 0/1 条目填充一个新列。

输出文件如下:

id  data                         all_caps
1   it's a programming language         0
2   this data is JUNK                   1
3   refer www.google.com                0
4   check for more information          0

如何用 R 实现这一点?我已经搜索了一段时间,无法为每一行的处理找到任何富有成效的结果。

4

1 回答 1

7

假设您的 data.frame 被称为test

test$all_caps <- grepl("[A-Z]{2,}",test$data)

  id                        data all_caps
1  1 it's a programming language    FALSE
2  2           this data is JUNK     TRUE
3  3        refer www.google.com    FALSE
4  4  check for more information    FALSE

您可以通过调用来生成 0 和 1as.numeric

test$all_caps <- as.numeric(grepl("[A-Z]{2,}",test$data))

  id                        data all_caps
1  1 it's a programming language        0
2  2           this data is JUNK        1
3  3        refer www.google.com        0
4  4  check for more information        0
于 2013-08-12T04:45:55.130 回答