简体   繁体   中英

Transposing and Add column in R in Azure ML Studio

I obtain the following data set in Azure. Each row is a parameter that is relevant to a forecasting model.

I am relatively new to R. I tried the following code but it does not give me the expected output. After I transpose the data set, I want to add an additional column "Month-Year".

Can someone help me? Thanks.

Data set

features    V1      V2      V3      V4      V5      V6      V7      V8      V9      V10     V11     V12
A           28.21   42.03   48.56   46.85   46.03   54.6    63.87   50      53.34   43.47   34.66   27.48
B           1333    1348.64 1364.28 1379.92 1395.56 1411.2  1426.84 1442.48 1458.11 1473.75 1489.39 1505.03
C           10.05   5.46    4.82    5.27    5.07    4.07    9.53    1.95    6.95    6.54    5.91    0.56
D           18.22   18.41   14.31   30.28   18.16   15.52   12.52   13.14   15.05   8.89    12.51   25.25

R code

# Map 1-based optional input ports to variables
dataset <- maml.mapInputPort(1) 

a <- c("A", "B", "C", "D")

data.set <- cbind(a, dataset)
names(data.set)[1] <- c("features")

# first remember the names
n <- dataset$features

# transpose all but the first column (name)
df.aree <- as.data.frame(t(data.set[,-1]))
names(data.set)[1] <- n

df.aree$myfactor <- factor(row.names(df.aree))

maml.mapOutputPort("df.aree")

Expected result

Month-Year  A       B           C       D
01-01-15    28.21   1333        10.05   18.22
01-02-15    42.03   1348.64     5.46    18.41
01-03-15    48.56   1364.28     4.82    14.31
01-04-15    46.85   1379.92     5.27    30.28
01-05-15    46.03   1395.56     5.07    18.16
01-06-15    54.6    1411.2      4.07    15.52
01-07-15    63.87   1426.84     9.53    12.52
01-08-15    50      1442.48     1.95    13.14
01-09-15    53.34   1458.11     6.95    15.05
01-10-15    43.47   1473.75     6.54    8.89
01-11-15    34.66   1489.39     5.91    12.51
01-12-15    27.48   1505.03     0.56    25.25

Create "MonYear" using seq with from and to dates.

 MonYear <- format(seq(as.Date('2015-01-01'), as.Date('2015-12-01'),
              by = 'month'), '%d-%m-%y')

Transpose the non-numeric columns in the original dataset (the output will be a matrix . We create a data.frame by combining 'MonYear' and the matrix output.

 df2 <- data.frame(MonYear,t(df1[-1]))

Change the column names and row names accordingly

 colnames(df2)[-1] <- LETTERS[1:4]
 row.names(df2) <- NULL
  df2 
 MonYear     A       B     C     D
1  01-01-15 28.21 1333.00 10.05 18.22
2  01-02-15 42.03 1348.64  5.46 18.41
3  01-03-15 48.56 1364.28  4.82 14.31
4  01-04-15 46.85 1379.92  5.27 30.28
5  01-05-15 46.03 1395.56  5.07 18.16
6  01-06-15 54.60 1411.20  4.07 15.52
7  01-07-15 63.87 1426.84  9.53 12.52
8  01-08-15 50.00 1442.48  1.95 13.14
9  01-09-15 53.34 1458.11  6.95 15.05
10 01-10-15 43.47 1473.75  6.54  8.89
11 01-11-15 34.66 1489.39  5.91 12.51
12 01-12-15 27.48 1505.03  0.56 25.25

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM