[英]How to create a new column in a dataframe based on grouped permutations of another column
[英]Create new column based on another column from dataframe with rnorm function
我正在尝试使用 rnorm function 中的列值并创建新的列绑定数据框。
> show(tablo)
teta
1 14.67078
2 14.86293
3 15.54010
4 15.91335
5 16.05241
6 15.24349
7 15.01060
8 14.79570
每个 teta 值均以 rnorm function 表示。 首先我创建了 function
values <- function(x)
{
rnorm(1, x, 0.55)
}
values(tablo$teta) or attach(tablo) values(teta)
这个 function 只显示一个值。
这很奇怪。
a <- 1:10
test <- function(x) {
x +20
}
test(a)
此 function 显示了 a 的所有新 a 值。
您应该在rnorm
中使用length(x)
而不是1
,例如,
rnorm(length(x),x,0.55)
使用apply系列函数(例如sapply
)function,因为您想在向量的每个元素上使用 function values
。 以下应该做的工作:
sapply(tablo$teta,values)
#[1] 14.88455 14.07981 15.19649 16.12940 16.42719 14.69165 14.27466 13.57540
您的test
function 在不使用sapply
的情况下工作,因为 R 中的+
操作是矢量操作。 但是,它不适用于values
function 因为在rnorm中,如果 n (第一个参数)为 1 (而在您的问题中将其作为向量传递),则平均值(即第二个参数)应该作为标量传递。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.