你好,你是美好的人。 我是新來的R和matlab,並在網上搜索來回答這個問題,但無法找到任何東西。問題是當我創建一個最終矩陣時,它只是列出了文件名。讀取文件名而不是文件中的數據
這背後的背景,讓你明白我的意思:
我使用R 3與內置的MATLAB和試圖從15讀取數據的.txt files.These 15個文件都具有數據和1686的兩列行。我應該使用dir()函數將這些文件放入類型列表的向量中。然後我訪問這個向量的每個元素並將其傳遞給read.table()函數,以便我可以創建一個包含數據的矩陣N.如前所述,這些文件有2列,我被告知要提取每個文件的第1列並將其放在一個名爲X的矩陣的第i列中.X有16行代表15個文件,一個標題行和1687列爲數據並解散第一列。
當我在R studio的控制檯位置鍵入X時,會出現X [i,] <-t(N [,1])中的錯誤:要替換的項目數不是替換長度的倍數。
我覺得夠公平了,我會將X改爲15×15的矩陣,而不是我想要的數據,而是包含一個包含.txt文件名的矩陣。 我試圖解決多重替換長度錯誤之前,首先要解決文件名的這個錯誤。 他們在我的代碼錯了嗎?我已經寫了下面的代碼,就好像爲15×15矩陣證明文件名稱問題,而不是16×1687作爲原:
# Clear workspace
rm(list=ls())
# Close any open graphics devices
graphics.off()
# Load additional packages
require(matlab, quietly=TRUE)
# Activate functions
source("auto.r")
source("mncn.r")
source("rangescale.r")
source("hcluster2.r")
filelist <- dir(path = "~/MSc/Course/Module3", pattern = "*.txt", all.files = FALSE,
full.names = FALSE, recursive = FALSE,
ignore.case = FALSE, include.dirs = FALSE, no.. = FALSE)
for (i in 1:length(filelist)) assign(filelist[i], read.table(filelist[i], sep="\t", header=T, row.names=1))
filelist <- as.matrix(filelist)
N <- filelist
X <- matrix (nrow = 15, ncol = 15)
X[i,] <- t(N[,1])
無後顧之憂的傢伙,fiiiiinaaaaaallly設法做到這一點花了我一個劇本的朋友送我的實驗小時。他們給我發了這個劇本。 –