String Conversion - цикл For для категориальных переменных - PullRequest
0 голосов
/ 17 декабря 2018

Привет, я новичок в R и ценю ваши советы по этому делу.Я изо всех сил пытался преобразовать переменные (объекты) в моих dataframe в string s и построить их, используя цикл for, как подробно описано ниже.

COUNTRY: China Belgium ...
COMPANY: XXX Inc. YYY Inc. ...

Здесь COUNTRY и COMPANY категорическипеременные.

Я использовал toString(), а также as.character(), чтобы преобразовать имя переменной в string, чтобы я мог указать имя графика, но не могу заставить его работать.Мне нужно 4 переменных, как указано в приведенном ниже коде для цикла for для 2 целей:

  • в качестве строки для графика именования
  • использование в barplot()

но ни преобразование строк, ни цикл for не работают должным образом, как я хотел.Может ли кто-нибудь помочь мне с правильной командой для этой цели?Ваша помощь очень ценится ... С уважением,

КОД

Frequency_COUNTRY <- table(COUNTRY)#Get Frequency for COUNTRY 
Relative_Frequency_COUNTRY <- table(COUNTRY) / length(COUNTRY)#Get Relative 
#Frequency (Percentage %) for Variable COUNTRY
Frequency_COMPANY <- table(COMPANY) #Get Frequency and Relative Frequency for COMPANY
Relative_Frequency_COMPANY <- table(COMPANY) / length(COMPANY)
Categorical_Variable_List = c(Frequency_COUNTRY,
                        Relative_Frequency_COUNTRY ,
                        Frequency_COMPANY,
                        Relative_Frequency_COMPANY)`# Get list of 4 variables above
for (Categorical_Variable in Categorical_Variable_List){#Plot 4 variables using a for loop
     A = toString(Categorical_Variable) #Trying to convert non-string variable name to string
plotName <- paste("BarChart_", A, sep = "_")# Specify plot name, e.g. BarChart_Frequency_COUNTRY
png(file = plotName)#Create png file 
barplot(Categorical_Variable) #use barplot() to make graph
dev.off()`# Switch off dev
}   

1 Ответ

0 голосов
/ 18 декабря 2018

Ваш код обрабатывает Categorical_Variable_List, как если бы это был с именем список категориальных переменных.Это ни то, ни другое.

Следующий код исправляет эти ошибки и составляет график из 4 барплотов.В своем коде удалите два вызова par, один до, а другой после цикла for.

Я составлю набор данных для проверки кода.

set.seed(1234)

n <- 20
COUNTRY <- sample(LETTERS[1:5], n, TRUE)
COMPANY <- sample(letters[1:4], n, TRUE)

Frequency_COUNTRY <- table(COUNTRY)    # Get Frequency for COUNTRY 
Relative_Frequency_COUNTRY <- table(COUNTRY) / length(COUNTRY)#Get Relative 
# Frequency (Percentage %) for Variable COUNTRY
Frequency_COMPANY <- table(COMPANY)    # Get Frequency and Relative Frequency for COMPANY
Relative_Frequency_COMPANY <- table(COMPANY) / length(COMPANY)

Variable_List <- list(Frequency_COUNTRY = Frequency_COUNTRY,
                      Relative_Frequency_COUNTRY = Relative_Frequency_COUNTRY,
                      Frequency_COMPANY = Frequency_COMPANY,
                      Relative_Frequency_COMPANY = Relative_Frequency_COMPANY) # Get list of 4 variables above
Variable_Name <- names(Variable_List)

old_par <- par(mfrow = c(2, 2))
for (i in seq_along(Variable_List)){                  # Plot 4 variables using a for loop
  plotName <- paste("BarChart", Variable_Name[[i]], sep = "_") # Specify plot name

  print(plotName)                                     # for debugging only

  #png(file = plotName)                               # Create png file 
  barplot(Variable_List[[i]])                         # use barplot() to make graph
  #dev.off()                                          # Switch off dev
}
par(old_par)

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...