Опция # 1:
Вы можете использовать apply
, как предложено @ RomanLuštrik, чтобы получить name
столбец.Необходимо проверить, имеет ли какой-либо столбец в этой строке совпадающий текст с name=
, используя any
и grep
.Решение будет выглядеть следующим образом:
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=
, тогда это будет пользовательская строка 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)