2014-05-01 5 views
2

у меня есть два кадра данных:Разделив каждый элемент из dataframe конкретных элементами второго dataframe

x = data.frame(replicate(10,sample(1:6,1000,rep=TRUE))) 
y = t(data.frame(apply(x, 2, sum))) 

Как разделить каждый элемент форму х для каждого столбца элемента в г в столбце с тем же имя. Кроме того, что было бы лучшим способом написать y?

Я попробовал вложенный применять:

apply(y, 2, function(y){ 
    sapply(x, function(x) (x/y)) 
}) 

Есть ли лучший способ?

ответ

2

Да, вы можете использовать scale:

scale(x, center=FALSE, scale=y) 

или sweep:

sweep(x, 2, y, FUN='/') 
4

лучший способ писать y будет

y <- colSums(x) 

И для того, чтобы «разделить каждый элемент формы x за столбец элементом в y "вы можете попробовать

mapply("/", x, y)