2016-04-12 16 views
1

私はRを初めて使用しており、文字値を数値に変換する方法についてのヘルプが必要です。変数のセットの文字値を数値に変更する

私はCSVファイルから19個の変数を読んでいますし、彼らは次の値が含まれています。

EXTREMELY IMPORTANT-10 ----> This should be actually value 10 
9 
8 
and so on 
NOT AT ALL IMPORTANT-01 ----> This should be actually value 01. 

今私は、私は次のコードを書かれているし、それが数値 に文字から、これらすべての19個の変数の値を変更する必要があります私にエラーを与える。

path <- "C:/Rajesh-Pandit/SPSS-Trial/BANKING/Salary-Account" 
setwd(path) 

library(foreign) 

final_data <- read.csv("Rajhi-R.csv",header = TRUE, sep = ",") 
str(final_data) 

x <- (as.data.frame(final_data[,c(15:33)])) 

summary(x) 

y <- as.matrix(19) 
importance <- as.matrix(19) 

for(i in (1:19)){ 
    if (x[i] == "EXTREMELY IMPORTANT-10") {y[i] <- 10} 
    else if (x[i] == "NOT AT ALL IMPORTANT-01") {y[i] <- 1} 
    else if (x[i] == "02") {y[i] <- 2} 
    else if (x[i] == "03") {y[i] <- 3} 
    else if (x[i] == "04") {y[i] <- 4} 
    else if (x[i] == "05") {y[i] <- 5} 
    else if (x[i] == "06") {y[i] <- 6} 
    else if (x[i] == "07") {y[i] <- 7} 
    else if (x[i] == "08") {y[i] <- 8} 
    else if (x[i] == "09") {y[i] <- 9} 
} 
y 

importance <- y 

基本的にx[i]文字の値はy[i]に変更されていません。この場合、forとifが動作しない理由について、私にフィードバックをお願いします。

答えて

0

これを試すことができます。

library('dplyr') 
library('purrr') 
library('magrittr') 
# use map_if() if you want to round all numeric columns/vectors into 2 decimals 
x %<>% mutate_each(funs(as.numeric)) %>% map_if(is.numeric, round, 2) 
関連する問題