私の現在のデータフレームは次のようになります。私はスクリプトに欲しいデータフレームの異なる列に基づいて合計を計算するためのループのR
# Create sample data
my_df <- data.frame(seq(1, 100), rep(c("ind_1", "", "", ""), times = 25), rep(c("", "ind_2", "", ""), times = 25), rep(c("", "", "ind_3", ""), times = 25), rep(c("", "", "", "ind_4"), times = 25))
# Rename columns
names(my_df)[names(my_df)=="seq.1..100."] <- "value"
names(my_df)[names(my_df)=="rep.c..ind_1................times...25."] <- "ind_1"
names(my_df)[names(my_df)=="rep.c......ind_2............times...25."] <- "ind_2"
names(my_df)[names(my_df)=="rep.c..........ind_3........times...25."] <- "ind_3"
names(my_df)[names(my_df)=="rep.c..............ind_4....times...25."] <- "ind_4"
# Replace empty elements with NA
my_df[my_df==''] = NA
はvalue
列の合計を計算し、むしろシンプルfor
ループです4つの列のそれぞれについて、結果を出力します。
は、これまでのところ、私は非常にわずかな試みがされています:あなたが見ることができるように
# Create a vector with all individuals
individuals <- c("ind_1", "ind_2", "ind_3", "ind_4")
# Calculate aggregates for each individual
for (i in individuals){
ind <- 1
sum_i <- aggregate(value~ind_1, data = my_df, sum)
print(paste("Individual", i, "possesses an aggregated value of", sum_i$value))
ind <- ind + 1
}
が、私は現在、当然、電流出力として次々列に基づいて合計を計算するための正しいコマンドを含めるように苦労し、 ind_1
の結果のみを計算します。希望の結果を得るために、aggregate
コマンドで何を変更する必要があるのですか(私は初心者ですが、ある列から別の列に進むためにインデックスを使うことを考えていましたか?
最初のヒント:< 'COLNAMES(my_df)を試みる - C( "値"、 "IND_1"、 "ind_2"、 "ind_3"、 "ind_4" ) ' – Jimbou