আমার একাধিক কলাম সহ একটি ডেটাফ্রেম রয়েছে। ডাটাফ্রেমের প্রতিটি সারিটির জন্য, আমি সারিটির একটি ফাংশন কল করতে চাই এবং ফাংশনের ইনপুটটি সেই সারি থেকে একাধিক কলাম ব্যবহার করছে। উদাহরণস্বরূপ, ধরা যাক যে আমার কাছে এই ডেটা এবং এই টেস্টফঙ্ক রয়েছে যা দুটি আরগ গ্রহণ করে:
> df <- data.frame(x=c(1,2), y=c(3,4), z=c(5,6))
> df
x y z
1 1 3 5
2 2 4 6
> testFunc <- function(a, b) a + b
ধরা যাক আমি এই টেস্টফঙ্কটি x এবং z কলামে প্রয়োগ করতে চাই। সুতরাং, সারি 1 এর জন্য আমি 1 + 5 চাই এবং সারি 2 এর জন্য আমি 2 + 6 চাই lo
আমি এটি চেষ্টা করেছি:
> df[,c('x','z')]
x z
1 1 5
2 2 6
> lapply(df[,c('x','z')], testFunc)
Error in a + b : 'b' is missing
কিন্তু ত্রুটি পেয়েছে, কোন ধারণা?
সম্পাদনা: আমি যে প্রকৃত ফাংশনটি কল করতে চাইছি তা সাধারণ যোগফল নয়, তবে এটি পাওয়ার.টেসটেস্ট। আমি উদাহরণস্বরূপ একটি + বি ব্যবহার করেছি। শেষ লক্ষ্যটি হ'ল এর মতো কিছু করতে সক্ষম হবেন (সিউডোকোডে লিখিত):
df = data.frame(
delta=c(delta_values),
power=c(power_values),
sig.level=c(sig.level_values)
)
lapply(df, power.t.test(delta_from_each_row_of_df,
power_from_each_row_of_df,
sig.level_from_each_row_of_df
))
যেখানে ফলাফলটি df এর প্রতিটি সারির জন্য power.t.test এর আউটপুটগুলির একটি ভেক্টর।
dplyr
. com/a/24728107/946850 দেখুন ।