#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)))))] . Это сработало для того, для чего мне это было нужно — спасибо!