У меня есть таблица 1500 * 6 и столбец 3000 (Seg.name). Вы видите их части здесь.
Мне нужно найти строки в столбце R.name в таблице, в которых есть слово в столбце Seg.name. Например, он ищет «ИСТИНА» в столбце R.name, чтобы найти, встречалось ли это слово в какой-либо из строк в R.name. Если находит его, то заменяет счет на ИСТИНА, в противном случае счет считается как NA. Вот почему у меня есть две петли For.
У меня также есть ifelse и часть кода l oop. Код работает без ошибок, но сохраняет только буквы в столбце count! например, вместо Pemex, он имеет P и так один. Как вы думаете, что здесь происходит?
**Year Rystad Operator Names Country**
2018 Pemex Mexico
2018 Other partner(s) US United States
2018 PetroChina China
2018 Equinor Norway
2018 Saudi Aramco Saudi Arabia
Имя сегмента
TRUE
ZYNERGY
ZUEITINA
ZINSZER
ZENITH
для l oop код:
for (j in 1:1000)
{
for (i in 1:20)
{
test=mapply(grepl, pattern=data.s$Seg.name[j], x=data.r$R.name[i], fixed=TRUE)
if (test == TRUE) data.r$count[i]=data.s$Seg.name[j] else {
if (data.r$count[i]=="NA") data.r$count[i]="NA" else data.r$count[i]=data.r$count[i]
}
}
}
return(data.r)
data.r возвращается в следующем формате:
**Year R.name Country count pass**
2018 Pemex Mexico P NA
2018 Other partner(s) US United States S NA
2018 PetroChina China P NA
2018 Equinor Norway NA NA
2018 Saudi Aramco Saudi Arabia S NA