-1
我再次看到一些遺留R代碼,試圖讀取用戶的頭腦。看起來他們正在使用Python風格,從而他們定義了一個空R矢量,然後使用for循環將結果附加到一個矢量。將data.table行添加到空向量---做正確的data.table事
library(data.table)
dtable = read.table("path/filename.txt",header=TRUE,sep="\t",check.names=FALSE)
定義這個data.table後,這裏是什麼 這裏是正在做什麼:
empty_vector <- c()
for(i in 1:nrow(dtable))
{
empty_vector <- append(empty_vector,strsplit(dtable[i,6],":")[[1]][2])
}
這是一個相當大的data.table
,用+ 500K行。
(1)我們不應該使用for循環。有一個data.table的方法來做到這一點。因此,定義一個空向量並將結果追加到這個向量中並不是R.什麼是「R方法」?
編輯:我認爲程序員是在Python的思維是這樣的:
empty_list = [] ## equivalent to R vector
for i in range(10):
empty_list.append(i)
print(empty_list) ## now [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
怎麼會有人做這樣的事情,因爲這是R和我們迭代一個data.table行?
看起來像破碎的代碼給我。請提供示例數據。但是,應該沒有理由爲此循環並使用append。追加速度很慢。 – CCurtis
@CCurtis看我的編輯。我認爲他們想要做的事情類似於通過迭代將項目附加到Python中的空列表。 – ShanZhengYang