【发布时间】:2020-03-02 22:32:11
【问题描述】:
我有一个包含 1000 行的表,其中每一行都是一个不同的变量。每行包括一个名称、值、平均值和标准差。
Table_1 <- data.table(Variables = c("a","b","c"), Value = 1000, mean = -(3:1), sd = 2)
我的桌子是这样的:
Variables Value mean sd
a 1000 -3 2
b 1000 -2 2
c 1000 -1 2
...
对于每一行我想添加以下结果:
set.seed(1)
sq1 <- seq(from = -3, to = 3, length.out = 180)
rn1 <- dnorm(sq1, mean = Table_1$mean[1], sd = Table_1$sd[1])
rn2 <- Table_1$Value[1] * rn1/sum(rn1)
我尝试了一个循环,但我的 rn1 部分有问题,甚至无法进入 rn2 部分。下面的循环给了我NULL。
Table_2 <- for(i in 1:3) {dnorm(sq1, mean = Table_1$mean[i], sd = Table_1$sd[i])}
结果应该是这样的,但输出也可以是单独的表格或长格式:
Variables Value mean sd 1 2 3 ...
a 1000 -3 2 13.3182941 13.3164238 13.3108143 ...
b 1000 -2 2 8.5720647 8.6429855 8.7120456 ...
c 1000 -1 2 4.939155 5.021927 5.104651 ...
您知道如何将其放入循环或应用函数或映射函数吗?
【问题讨论】:
标签: r dataframe for-loop lapply