আমি নিম্নলিখিত তথ্য ফ্রেম আছে
x <- read.table(text = " id1 id2 val1 val2
1 a x 1 9
2 a x 2 4
3 a y 3 5
4 a y 4 9
5 b x 1 7
6 b y 4 4
7 b x 3 9
8 b y 2 8", header = TRUE)
আমি id1 এবং id2 দ্বারা গোষ্ঠীযুক্ত ভাল 1 এবং ভাল 2 এর গড় গণনা করতে চাই এবং একই সাথে প্রতিটি id1-id2 সংমিশ্রনের জন্য সারিগুলির সংখ্যা গণনা করতে চাই। আমি প্রতিটি গণনা আলাদাভাবে সম্পাদন করতে পারি:
# calculate mean
aggregate(. ~ id1 + id2, data = x, FUN = mean)
# count rows
aggregate(. ~ id1 + id2, data = x, FUN = length)
এক কালে উভয় গণনা করার জন্য, আমি চেষ্টা করেছি
do.call("rbind", aggregate(. ~ id1 + id2, data = x, FUN = function(x) data.frame(m = mean(x), n = length(x))))
তবে, আমি একটি সতর্কতা সহ গার্ফড আউটপুট পাই:
# m n
# id1 1 2
# id2 1 1
# 1.5 2
# 2 2
# 3.5 2
# 3 2
# 6.5 2
# 8 2
# 7 2
# 6 2
# Warning message:
# In rbind(id1 = c(1L, 2L, 1L, 2L), id2 = c(1L, 1L, 2L, 2L), val1 = list( :
# number of columns of result is not a multiple of vector length (arg 1)
আমি পাতলা প্যাকেজটি ব্যবহার করতে পারতাম, তবে ডেটাসেটের আকার বাড়লে আমার ডেটা সেটটি বেশ বড় এবং পাতলা খুব ধীর (প্রায় অব্যর্থ) is
আমি aggregate
একটি কলে বিভিন্ন গণনা সম্পাদন করতে কীভাবে বা অন্যান্য ফাংশন ব্যবহার করতে পারি ?
aggregate
উল্লিখিত রয়েছে এছাড়াওby
এবংtapply
।