[英]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.