2017-06-16 51 views
0

所以我正在處理這個數據集,這是一個csv文件。 MYDATA = 名學校total_consumption 衝壓ABC 15 RAM1 ABCD 16 RAM2 ABCDE 17 RAM3 ABCDEF 18 RAM4 ACB 19 ram5 acbe 20分配值到行

現在我想整個數據以降序進行排序,然後分配段如s1,s2等。用戶輸入段號作爲輸入。假設用戶輸入2將有2段。現在總的行沒有將除以2,然後上半年將段1和第二半將段2

段VAL = 2 輸出segemnt 20 S1 19 S1 18 S1 17 S2
16 S2 15 S2

這裏是我的代碼:

library(dplyr) 
library(reshape2) 
library (hts) 

setwd("C:/Users/Desktop/r") 
mydata <- read.csv("read1.csv") 

mydata$newcolumn <- NA 

temp1 <- mydata[order(mydata$fy_vol, decreasing = TRUE),] 

nrow(temp1) 
row <- nrow(temp1) 

readinteger <- function() 
{ 
n <- readline(prompt="Enter number of quant: ") 
n <- as.integer(n) 
if (is.na(n)){ 
n <- readinteger() 
} 
return(n) 
} 

q <- readinteger() 
nrow(temp1) 
row <- nrow(temp1) 
+0

有沒有示例數據,我可以用來做你在做什麼。問題沒有明確定義。你的代碼有錯誤。例如。訂單統計應該有數據$ total_consumption而不是數據$ fy_vol。 – Lune3414

回答

1

你的問題有太多的問題。請閱讀「如何製作一個可重複使用的例子」。下面的代碼應該讓你做你正在做的事情。

library(dplyr) 
library(reshape2) 
library (hts) 

setwd("C:/Users/Desktop/r") 
mydata <- read.csv("read1.csv") 

col1 <- c('ram1','ram2','ram3','ram4','ram5','ram6') 
col2 <- c('abc','abcd','abcde','abcdef','abcdefg','abcdefgh') 
col3 <- c(15:20) 

mydata <- data.frame(name = col1, school = col2, total_consumption = 
col3)     

mydata$newcolumn <- NA 

temp1 <- mydata[order(mydata$total_consumption, decreasing = TRUE),] 

nrow(temp1) 
row <- nrow(temp1) 

readinteger <- function() 
{ 
n <- readline(prompt="Enter number of quant: ") 
n <- as.integer(n) 
if (is.na(n)){ 
n <- readinteger() 
} 
return(n) 
} 

q <- readinteger() 
nrow(temp1) 
row <- nrow(temp1) 

#calculate the size of split based on if the entry is odd or even. 
seg1 <- ifelse(row %% q == 0,row/2,row/2-0.5) 

temp1$newcolumn[1:seg1] <- "s1" 

temp1$newcolumn[seg1:row] <- "s2"