将data.table行附加到空向量中 - 执行正确的data.table事务

时间:2017-11-03 22:17:05

标签: r for-loop vector append data.table

我再一次看一些遗留的R代码,试图读懂用户的想法。它看起来像是使用Python样式,因此它们定义了一个空的R向量,然后使用for循环将结果附加到向量。

Person

在定义了这个data.table之后,这是什么 以下是正在做的事情:

SelectedValue="{Binding Path=SelectedItem.Id, RelativeSource={RelativeSource Self}}"

这是一个相当大的library(data.table) dtable = read.table("path/filename.txt",header=TRUE,sep="\t",check.names=FALSE) ,行数为+ 500K。

(1)我们不应该使用for循环。有一种data.table方法可以做到这一点。

(2)因此,定义一个空向量并将结果附加到此向量不是R.这是什么“R方法”?

编辑:我认为程序员在Python中正在考虑这样的事情:

empty_vector <- c()

for(i in 1:nrow(dtable))
{
empty_vector <- append(empty_vector,strsplit(dtable[i,6],":")[[1]][2])
}

如果这是R并且我们正在迭代data.table的行,有人会怎么做这样的事情?

1 个答案:

答案 0 :(得分:0)

这可以在R中非常简单地完成。对于表中的每一行,它们从一列中的文本中提取一些值。然后他们想要这些值的向量。假设数据表的第6列的名称为colnname6,则变为

emtpy_list = dtable[, strsplit(colnname6, ":")[2]]