2013-08-19 4 views
0

Я новичок в R, и мне трудно понять, что все параметры в read.table(). У меня есть текстовый файл с заголовком и примерно 50 строк. Столбцы разделены вкладками. Я сделал следующее.r - нужна помощь в преобразовании таблицы в матрицу

data <- read.table("/Accounts/changy/Desktop/GreekProject/outputWithoutQuantity.txt",header=TRUE,sep="\t", quote = "") 

Теперь я хочу создать матрицу, но опустить заголовок (первая строка). Кроме того, read.table генерирует пронумерованные строки для каждой из уже пронумерованных строк, и я не хочу, чтобы моя матрица была пронумерована вообще, поэтому мне также нужно было бы опустить первые два столбца. Может ли кто-нибудь указать мне правильное направление? Я знаю

matrixData <- as.data.frame.matrix(data) 

делает это, но он не форматирует строки и столбцы, как хотелось бы. Спасибо за любую помощь заранее, от полного новичка до R!

вот моментальный снимок моего набора данных по запросу.

http://postimg.org/image/b7h97rd7d/

+0

как о 'as.matrix (данные, Ncol = Ncol (данные))' – Ben

+0

Не могли бы вы опубликовать моментальный снимок вашего набора данных? – Mayou

+0

мой набор данных слишком велик; но я попробую. http://postimg.org/image/b7h97rd7d/ первые 9 строк должны быть 1 строка; они вместе образуют первый ряд. –

ответ

4

Вот предложение. Работает ли так, как вы хотите?

## Test dataset 
data = data.frame(col1 = c(1,2,3,4), col2 = c(0,0, 1, 0), col3 = c(1,0,0,1)) 
write.table(data, "data.txt", row.names = FALSE) 
data.txt = read.table("data.txt", header = TRUE) 

data.mat = as.matrix(data.txt[,-1]) # gets rid of the leftmost column(as you requested) 
dimnames(data.mat) <-list(rep("", dim(data.mat)[1]), rep("", dim(data.mat)[2])) 

Это будет выходной сигнал

0 1 
0 0 
1 0 
0 1 

вместо:

1 0 1 
2 0 0 
3 1 0 
4 0 1 
+0

Я думаю, что это почти то, что я пытаюсь сделать. Однако созданная вами матрица 4 на 3, при этом имена строк и столбцов опущены.Поскольку я пытаюсь удалить первый столбец, результирующая матрица, которую я хотел бы сгенерировать в моем случае, фактически равна 4 на 2, с удалением первого вектора (c (1,2,3,4)). Спасибо за вашу помощь и терпение, имейте upvote! –

+0

Ну, я просто изменил ответ, чтобы исключить первый вектор. Повторите попытку модифицированной версии выше. (с 'data.mat = as.matrix (data.txt [, - 1])'). Обратите внимание на «-1» – Mayou

+0

Это замечательно. Спасибо! Ваша последняя функция, dimnames, просто измените data.mat, чтобы удалить столбцы и строки заголовка? –

Смежные вопросы