Ограничение количества слов в столбце символов в R и сохранение дополнительных слов в другой переменной [duplicate]

Если все остальное не удается, перекомпилируйте.

Недавно я смог избавиться от нерешенной внешней ошибки в Visual Studio 2012, просто перекомпилировав нарушивший файл. Когда я перестроил, ошибка исчезла.

Это обычно происходит, когда две (или более) библиотеки имеют циклическую зависимость. Библиотека A пытается использовать символы в B.lib и библиотеке B пытается использовать символы из A.lib. Ничего не существует для начала. Когда вы пытаетесь скомпилировать A, шаг ссылки завершится неудачно, потому что он не может найти B.lib. A.lib будет сгенерирован, но не будет dll. Затем вы компилируете B, который будет успешным и сгенерирует B.lib. Повторная компиляция A теперь будет работать, потому что теперь найден B.lib.

6
задан user3188390 13 January 2014 в 00:13
поделиться

4 ответа

Вот небольшая функция, которая блокирует строки, подмножает первые десять слов и затем вставляет их обратно.

string_fun <- function(x) {
  ul = unlist(strsplit(x, split = "\\s+"))[1:10]
  paste(ul,collapse=" ")
}

string_fun(x)

df <- read.table(text = "Keyword,City(Column Header)
The length of the string should not be more than 10 is or are in,New York
The Keyword should be of specific length is or are in,Los Angeles
                 This is an experimental basis program string is or are in,Seattle
                 Please help me with getting only the first ten words is or are in,Boston", sep = ",", header = TRUE)

df <- as.data.frame(df)

Использование apply (функция ничего не делает во втором столбце)

df$Keyword <- apply(df[,1:2], 1, string_fun)

EDIT Возможно, это более общий способ использования функции.

df[,1] <- as.character(df[,1])
df$Keyword <- unlist(lapply(df[,1], string_fun))

print(df)
#                      Keyword                            City.Column.Header.
# 1    The length of the string should not be more than            New York
# 2  The Keyword should be of specific length is or are         Los Angeles
# 3  This is an experimental basis program string is or             Seattle
# 4      Please help me with getting only the first ten              Boston
2
ответ дан marbel 24 August 2018 в 19:44
поделиться

Ответ регулярного выражения (regex) с использованием \w (символ слова) и его отрицание \W:

gsub("^((\\w+\\W+){9}\\w+).*$","\\1",x)
  1. ^ Начало токена (нулевая ширина)
  2. ((\\w+\\W+){9}\\w+) Десять слов, разделенных не-словами. (\\w+\\W+){9} Слово, за которым следует не-слово, 9 раз \\w+ Один или несколько символов слова (например, слово) \\W+ Один или несколько символов без слова (т. е. пробел) {9} Девять повторений \\w+ Десятое слово
  3. .* Все остальное, включая другие следующие слова
  4. $ Конец токена (нулевая ширина)
  5. \\1 когда этот токен найден, замените его на первую захваченную группу (10 слов)
16
ответ дан Blue Magister 24 August 2018 в 19:44
поделиться

Как насчет использования функции word из пакета stringr Хэдли Уикхэма?

word(string = x, start = 1, end = 10, sep = fixed(" "))

5
ответ дан Jubbles 24 August 2018 в 19:44
поделиться
x <- "The length of the word is going to be of nice use to me"
head(strsplit(x, split = "\ "), 10)
2
ответ дан thelatemail 24 August 2018 в 19:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: