-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