Как создать CSV.из таблицы, которая пришла из процедуры слияния (R)?Каким-то образом таблица не сохраняется, и я не могу преобразовать ее в фрейм данных - PullRequest
0 голосов
/ 26 мая 2018
library(reshape2)
Customer<- c("Susan","Louis", "Frank","Susan")
Seller<- c("Ivan", "Donald","Chris","Ivan")
Service<-c("COU","CAR", "FCL","CAR")
Billingmean<- c(100,200,300,400)
WrsHoldSum<-c(0,0,0,0)
Group<- c("n1","n2"," "," ")
B1<- c(0,2,2,1) 
B2<-c(9,8,7,6)
B3<- c(5,4,3,2)

Этот информационный кадр включает в себя такую ​​информацию, как среднее значение выставления счетов за прошлые годы, Продавец, Тип обслуживания

df<- data.frame(Customer, Seller,Service, Billingmean,WrsHoldSum, Group,B1,B2,B3)

В этом разделе используется dcast для изменения конфигурации.из dframe, чтобы я мог использовать этот файл позже в Word, чтобы заполнить некоторые каталоги в режиме «Mail Merge»

sub1<- dcast(data= df, formula= Customer+Group+Seller+WrsHoldSum~Service,fun.aggregate= sum,value.var= "Billingmean")
sub2<- dcast(data= df, formula= Customer+Group+Seller+WrsHoldSum~Service,fun.aggregate= sum,value.var= "B1") 
sub3<- dcast(data= df, formula= Customer+Group+Seller+WrsHoldSum~Service,fun.aggregate= sum,value.var= "B2")
sub4<- dcast(data= df, formula= Customer+Group+Seller+WrsHoldSum~Service,fun.aggregate= sum,value.var= "B3")

Здесь я добавляю новые столбцы для добавления информации в таблицу, однако не является вложенным в окружение, чтобы вызывать его в функции write.csv ().

tNames <- grep(x = ls(), pattern = "^sub", value = T)

lapply(seq_along(tNames), function(x){
  tSym <- as.name(tNames[[x]])

  d1 <- copy(eval(tSym))

  cols <- grep(x = names(d1), pattern = "^CAR|^COU|^FCL", value = T)

  setnames(d1, old = cols, new = paste0(cols, " B", x))

  return(d1)

}) %>% Reduce(function(x, y) merge(x, y, by = c("Customer","Group","Seller","WrsHoldSum")), .)

здесь я не знаю, есть ли другой способ объединения новых столбцов Billing1 (B1), Billing 2 (B2), Billing 3 (B3) ..

Это ожидаемый результат

Customer Group Seller WrsHoldSum CAR B1 COU B1 FCL B1 CAR B2 COU B2 FCL B2 CAR B3 COU B3 FCL B3 CAR B4 COU B4 FCL B4
1    Frank        Chris          0      0      0    300      0      0      2      0      0      7      0      0      3
2    Louis    n2 Donald          0    200      0      0      2      0      0      8      0      0      4      0      0
3    Susan         Ivan          0    400      0      0      1      0      0      6      0      0      2      0      0
4    Susan    n1   Ivan          0      0    100      0      0      0      0      0      9      0      0      5      0
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...