2016-05-11 7 views
1

Я пытаюсь преобразовать типы данных, чтобы правильно строить данные.R программирование преобразования типов

На мой взгляд, мои коды немного сложны и не эффективны.

Поэтому я хотел бы задать несколько советов для получения лучших кодов.

Ниже приведены мои коды.

pos <- as.matrix(read.delim("urc_pos",header=FALSE)) 
neg <- as.matrix(read.delim("urc_neg",header=FALSE)) 
rownames(pos) <- 1:nrow(pos) 
pos_temp <- cbind("pos",pos[,3:42]) 
pos_temp_temp <- as.data.frame(pos_temp) 
for(i in 2:41) 
{ 
    pos_temp_temp[,i] <- as.numeric(as.character(pos_temp_temp[,i])) 
} 

urc_pos и urc_neg - это мои наборы данных.

Например, когда я набрал «is.numeric (pos [3,3])», он вернул false, потому что это был вектор. Поэтому необходимо преобразовать его тип данных в числовой. После этого я назначил номера строк и добавил метку «pos» в первом столбце.

И ниже приведены коды, которые преобразуют типы векторов в числовой тип. Я думаю, что он немного сложный и неблагоприятный. Потому что я думаю, что в циклы for задействованы ненужные процедуры, включая преобразование типов данных (data.frame -> character-> numberical).

pos_temp_temp <- as.data.frame(pos_temp) 
for(i in 2:41) 
{ 
    pos_temp_temp[,i] <- as.numeric(as.character(pos_temp_temp[,i])) 
} 

В любом случае, я получил то, что хотел. когда я набрал «is.numeric (pos_temp_temp [3,3])», он вернул TRUE.

Однако я хочу получить лучшие решения для решения этих проблем. Я с нетерпением жду вашего ответа: D

+0

Если ваши коды немного сложны и неэффективны, то это одна из проблем. Если вы ищете свою помощь, уточните свой вопрос. –

+0

Пожалуйста, включите [воспроизводимый пример] (http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example/5963610). – Jaap

ответ

1

Вы пробовали следующий код:

pos_temp_temp<-as.numeric(as.character(pos_temp)) 

В общем, вы должны стараться избегать петель, когда possbile.

+0

Я пробовал, но он вернулся NA. – sclee1

+0

Можете привести пример своих данных? –