gpt4 book ai didi

r - 在多列中搜索字符串

转载 作者:行者123 更新时间:2023-12-04 01:56:29 24 4
gpt4 key购买 nike

我有一个从 .CSV 文件读取的大型数据框(大约 40000 x 500)。该数据集包含一个错误代码组合列表,每个组合都专门列出了所有唯一代码。我正在搜索包含特定字符串的行,例如 "name=",以查看是否知道列出该组合的人。问题是我不知道这可能发生在哪一列,因为每行第 10 列及以后是不规则的,因为每个组合的错误代码数量是不规则的。这意味着在某个点之后,除了最大的错误代码组合之外,行都是空的。我只知道如果该行包含我要查找的字符串,它将位于包含任何信息的行的最后 6 列之一中。如果我正在寻找的那段字符串在一行中找到,我希望在不同的列中得到答案。

我已广泛寻找解决方案,但找不到满足我需求的任何解决方案。另外,我是 R 的新手。

[Fake dataset]

Year Problem_ID Number.of.errors X X.1 X.2 X.3 X.4
1 2005 Server 2 X-4555 X-1222 name=Sara
2 2011 Hardware 3 X-8922 X-7644 X-6485
3 2015 Software 4 X-8494 X-4321 X-7452 X-5321 name=John
4 2018 Hardware 2 X-6901 X-1121
5 2007 Server 3 X-7655 X-6555 X-8999 name=Sara

[Desired output]

Year Problem_ID Number.of.errors Name X X.1 X.2 X.3 X.4
1 2005 Server 2 1 X-4555 X-1222 name=Sara
2 2011 Hardware 3 0 X-8922 X-7644 X-6485
3 2015 Software 4 1 X-8494 X-4321 X-7452 X-5321 name=John
4 2018 Hardware 2 0 X-6901 X-1121
5 2007 Server 3 1 X-7655 X-6555 X-8999 name=Sara

最佳答案

选项 #1:

您可以使用 apply按照@RomanLuštrik 的建议获取name柱子。必须检查该行中的任何列是否具有与 name= 匹配的文本使用 anygrep .解决方案如下:

df$name <- apply(df, 1, function(x)as.integer(any(grep("name=",x))))

df
# Year Problem_ID Number.of.errors X X.1 X.2 X.3 X.4 name
# 1 2005 Server 2 X-4555 X-1222 name=Sara <NA> <NA> 1
# 2 2011 Hardware 3 X-8922 X-7644 X-6485 <NA> <NA> 0
# 3 2015 Software 4 X-8494 X-4321 X-7452 X-5321 name=John 1
# 4 2018 Hardware 2 X-6901 X-1121 <NA> <NA> <NA> 0
# 5 2007 Server 3 X-7655 X-6555 X-8999 name=Sara <NA> 1

选项#2:万一OP只对包含 name= 的行感兴趣text 那么它将是用户 csv按行过滤掉包含 name= 的行.

  All_lines <- readLines(file_name)

desired_lines <- grep("name=", All_lines, value = TRUE)

desired_lines只得到那些包含 name= 的行.

数据:

df <- read.table(text = 
"Year Problem_ID Number.of.errors X X.1 X.2 X.3 X.4
1 2005 Server 2 X-4555 X-1222 name=Sara NA NA
2 2011 Hardware 3 X-8922 X-7644 X-6485 NA NA
3 2015 Software 4 X-8494 X-4321 X-7452 X-5321 name=John
4 2018 Hardware 2 X-6901 X-1121 NA NA NA
5 2007 Server 3 X-7655 X-6555 X-8999 name=Sara NA",
header = TRUE, stringsAsFactors = FALSE)

关于r - 在多列中搜索字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50210531/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com