#r #excel
#r #excel
Вопрос:
У меня есть данные Excel следующим образом:
Как вы можете видеть, файл Excel содержит 4 записи данных (month, X, Y , Z)
, все они собраны в один столбец (A)
. Мне интересно создать программу, в R
которой можно автоматически отделять данные друг от друга и, наконец, генерировать матрицу, содержащую 4 столбца ( month, X, Y , Z
) и три строки их соответствующих значений. Например, матрица
M = [March, 12, 15, 44;
April, 33, 34, 21;
June, 44, 66, 33].
Кроме того, есть ли какое-либо другое решение (например, автоматически сгенерировать текстовый текст.файл или новый файл Excel, который может решить эту проблему и поместить все данные в один столбец каждый?
Я начал писать код R, но поскольку я новичок в R, поэтому я заблокирован. Я также не эксперт по Excel.
Любая помощь будет очень признательна
Комментарии:
1. показать код, который вы запустили?
2. @cory Это беспорядок, поверьте мне: p
Ответ №1:
Попробуйте этот код. Это немного длинновато, но if будет работать для любых имеющихся у вас элементов. Вот код, использующий tidyverse
функции. Код загружает файл. Поскольку имена указаны в заголовке, вы выделяете их в вектор для последующего процесса. С помощью данных, которые мы используем separate_rows()
;
для разделения строки, а затем pivot_wider()
для повторного упорядочивания. Наконец, мы используем str_split()
для обработки имен. Мы присваиваем их данным и экспортируем с помощью write.table()
:
library(readxl)
library(dplyr)
library(tidyr)
#Load
df <- read_excel('Libro1.xlsx',1,)
#Extract names
names(df)<-'V1'
#Reshape
input <- df %>% mutate(id=row_number()) %>%
separate_rows(V1,sep=';') %>%
filter(V1!='') %>%
group_by(id) %>% mutate(id2=paste0('V',row_number())) %>%
pivot_wider(names_from = id2,values_from=V1) %>%
ungroup() %>% select(-id)
#Separate
input <- input %>% separate(V1,c('Month','V1'),sep='-')
#Export
write.table(input,file='Myfile.txt',sep='t',row.names = F)
В .txt
файле у вас будет это:
Month V1 V2 V3
1 March 12 15 44
2 April 33 34 21
3 June 44 66 33
Комментарии:
1. Большое вам спасибо. Я пробовал ваш код, но, похоже, когда я создавал текстовый файл, значения для X складывались в месяцы. Как я могу решить эту проблему?
2. Не волнуйтесь, но этот код выдает ошибку: объект ‘X’ не найден
3. Я всегда получаю одну и ту же ошибку: объект ‘X’ не найден: (
4. @Christina Я добавил глобальное изменение. Пожалуйста, повторно запустите весь новый код и дайте мне знать, если это сработает!
5. Большое вам спасибо! Live love Argentinaaa