私はそれほど多くの関数を使用しませんが、使用するときは、anon関数と何らかの形式のを使用する傾向がありapply
ます。ただし、現在、リスト内のアイテムを処理する関数を作成しようとしています。
それぞれが多くのアイテムを持っている2つのリストがあります(アイテムによって私は例えばmylist1[1]
)。すべてのアイテムはデータフレームです。mylist1
から最初のデータフレームを取得し、から最初のデータフレームを取得mylist2
して、それらのデータフレームの列に対して一連の関数を実行したいと思います。次に、2番目mylist1
のアイテムと2番目のアイテムを取りmylist2
ます...
以下は私が書くことに慣れている種類のものですが、この場合、2つのリストでは明らかに機能しません。sapply
主な問題を引き起こしていると思われる方法以外の方法を使用して、これにどのようにアプローチすべきかをすばやく理解する方法を誰かが手伝ってくれますか?
a <- c(1:10)
b <- c(1:10)
z <- c(rep("x", 5), rep("y", 5))
df <- data.frame(cbind(a, b, z))
mylist1 <- split(df, z)
mylist2 <- split(df, z)
myfunction <- function(x, y)
{
a <- as.data.frame(x[1])
b <- as.data.frame(y[1])
meana <- mean(a[1])
meanb <- mean(b[1])
model <- lm(a[1]~b[1])
return(c(model$coefficients[2], meana, meanb))
}
result <- sapply(mylist1, mylist2, myfunction)
subset
私はまた、人々はそのように機能するz
よりも、それを行う方が良いと思うのだろうかと思いましたsplit
か?