Разделение элементов с большим количеством пробелов во фрейме данных в R

#r #dataframe #csv #paste

Вопрос:

У меня есть данные из базы данных, которая возвращает запросы в виде электронного письма (забавно, я знаю). Данные необходимо каким-то образом скопировать из электронной почты и отформатировать в фрейм данных в R для управления. Данные представлены в строках для каждого нумерованного имени, и каждый элемент разделен некоторым количеством пробелов (не одним пробелом). Данные в электронном письме выглядят следующим образом:

изображение источника данных

Мне нужен фрейм данных, который имитирует этот формат в R. Когда я пытаюсь его получить, он сохраняет каждую строку как один «элемент», если это имеет смысл, например «12345 0 X» для каждой строки в отдельном столбце. Я хочу, чтобы каждый из этих элементов был помещен в свои собственные столбцы.

Вот что я пытаюсь сделать:

df <- as.data.frame(readClipboard())

Это мой вывод, который я в настоящее время получаю:

введите описание изображения здесь

Как правильно разделить это, поскольку между каждым элементом так много пробелов?

Комментарии:

1. Попробуй: df <- read.table(file = 'clipboard', sep = " ", header = TRUE, stringsAsFactors = FALSE)

2. ( stringsAsFactors=FALSE по умолчанию, начиная с R-4, на случай, если это имеет значение)

3. В кадре данных в такой ситуации: вы могли бы использовать: library(dplyr) library(tidyr) df %>% separate( readClipboard() , c("Name", "Number", "Variable"))

4. Можете ли вы поделиться результатами dput(readClipboard()) в этом вопросе?

5. Я думаю, что часть проблемы заключается в том, что между элементами есть несколько пробелов, а не только один, если это имеет смысл. Я попробовал df Затем я удалил столбцы,состоящие только из NAs с: df [, которые(unlist(lapply(df, функция(x) !все(is.na(x)))))] . Это сработало для того, для чего мне это было нужно — спасибо!