2017-05-08 61 views
1

我是新来的R和我想知道是否有用于扩展和通过散布我的意思是,例如,如果我有这样的data.table库:传播价值

DT <- data.table(V1 = c(1L,2L), V2 = LETTERS[1:4], V4 = 1:4) 

我assing 15到V4列:

值将被调整,使之现在是15:

DT <- data.table(V1 = c(1L,2L), V2 = LETTERS[1:4], V4 = c(1.5,3,4.5,6)). 

(新值是乘以15 /总和(列) - > 15/10)

这是我必须做的最简单的例子,这就是为什么我问是否有图书馆。

回答

1

您可以使用以下来计算数量相乘15/10=1.5然后.I

DT <- data.table(V1 = c(1L,2L), V2 = LETTERS[1:4], V4 = 1:4) 
DT$V4 = 15 
DT[,V4:=.I*V4/sum(seq(.N))] 

DT 
# V1 V2 V4 
# 1: 1 A 1.5 
# 2: 2 B 3.0 
# 3: 1 C 4.5 
# 4: 2 D 6.0 
乘以