Я нашел этот код по одному из ответов из другого сообщения: R - Обработка нескольких значений как одной строки в одной переменной Код очень и очень полезен, но мне трудно разобраться логическое с for-l oop.
# Data
text = c("Text1", "Text2", "Text3", "Text4", "Text5")
lang = c("fr", "en", "fr,en", "sp,fr", "sp,fr,en")
d = data.frame(text, lang, stringsAsFactors = FALSE)
# Get a vector of the languages that exist
languages <- unique(unlist(strsplit(d$lang, ",")))
# Create a new column for each language
for (language in languages) d[[language]] <- grepl(language, d$lang)
# An example bar-plot
barplot(colSums(d[, -c(1, 2)]))
Мой вопрос о для (язык в языках) d [[language]] <- grepl (language, d $ lang)</strong>, который создает новые столбцы для каждого языка.
Q1) Как работает ( вектор в вектор )? Создает ли это число новых столбцов (язык) в зависимости от длины шаблона (языков)?
for(language in languages)
Я использовал «for ()» только с цифрами c,
for ( i in (1:n))
и удивляетесь, как можно использовать вектор (вектор в векторе).
Q2) Это еще больше сбивает с толку то, как мы можем использовать несозданные языковые столбцы в качестве шаблона для prepl ()?
grepl(language, d$lang)
, поскольку языковые столбцы еще не созданы, но которые используются в качестве шаблона для функции grepl () для заполнения пустых языковых столбцов ...
Мне нужна помощь, чтобы понять эту спецификацию c строка.