Я борюсь с учебником R для пакета MiRLAB, хотя я не уверен, связана ли проблема с функцией пакета.

Я хочу использовать функцию Pearson(), которая принимает только файлы .csv. Я загрузил файл отлично, но когда я попробовал функцию Pearson() (то же самое происходит с MI, IDA и Lasso), появилось следующее сообщение об ошибке:

Ошибка в read.table (file = file, header = header, sep = sep, quote = quote,: 'file' должен быть символьной строкой или соединением

dataset=read.csv("ArabPrueba1.csv", sep = ";")
cause= 3:23
effect= 24:44
pearson=Pearson(dataset,cause,effect)

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

Заранее спасибо

r csv
2
N.Ugartondo 27 Ноя 2016 в 19:33

2 ответа

Лучший ответ

Я наконец решил проблему, даже если это не кажется чистым решением, оно работает. Я предполагаю, что проблема заключалась в том, что некоторые дополнительные "" были добавлены к исходным файлам, когда я перенес их в консоль, поэтому я переписал файлы и повторно добавил недавно созданные файлы в консоль.

RNA <- read.table("RNA.csv", dec = ",", sep = ";", stringsAsFactors = FALSE, header = TRUE, blank.lines.skip = TRUE)
tRNA <- t(RNA)
write.table(tRNA, file = "tRNA_2.csv", quote = FALSE, dec = ".", sep = ",", qmethod = "escape")
tRNAt <- read.csv("tRNA_2.csv")

miRNA <- read.table("miRNA.csv", dec = ",", sep = ";", stringsAsFactors = FALSE, header = TRUE, blank.lines.skip = TRUE)
tmiRNA <- t(miRNA)
write.table(tmiRNA, file = "tmiRNAt.csv", quote = FALSE, dec = ".", sep = ",", qmethod = "escape")
tmiRNAt <- read.csv("tmiRNAt.csv")

dataset <- cbind2(x=tmiRNAt, y = tRNAt)
write.table(dataset, file = "dataset_2.csv", quote = FALSE, dec = ".", sep = ",", qmethod = "escape")

# MiRLAB:
library(miRLAB)
cause = 1:278
effect = 279:length(dataset)
ps = Pearson("dataset_2.csv", cause = cause, effect = effect)

Я знаю, что писать и читать так много раз - не лучшая идея, но на самом деле так получилось (сработало вообще).

Спасибо за помощь!

1
N.Ugartondo 8 Дек 2016 в 09:05

Вот пример:

# working:
# create csv file with "," seprator
write.table(x = mtcars, file = "data.csv", sep = ",", row.names = F)
Pearson(datacsv = "data.csv", cause = 2:3, effect = 3:4)

#           cyl      disp
#disp 0.9020329 1.0000000
#hp   0.8324475 0.7909486


# not work:
# create csv file with ";" seprator
write.table(x = mtcars, file = "data1.csv", sep = " ; ", row.names = F, col.names = F)
Pearson(datacsv = "data1.csv", cause = 2:3, effect = 3:4)

Внутренний read.csv использует разделитель по умолчанию "," просто измените свой файл и замените всю точку с запятой на запятую

0
cccmir 28 Ноя 2016 в 09:27