对于我的大学 实习我有很多数据集,我应该在Excel中一遍又一遍地执行相同的功能。我决定做一个 R 剧本,我几乎要完成了,我在最后一步中只需要帮助。
我有一些年份的计数产品,我希望将此列表中的所有年份列乘以特定列,纬度列,结果应该以名为xlat + year的新列的形式出现。
我尝试了很多for循环,但我无法做到。
这是Excel中我想要在 R 中执行的操作的示例。我将F2列(生产)乘以D2列(纬度)。
答案 0 :(得分:0)
以下是使用简单的 sapply 而不是 for loop
的方法。。注意:我将创建示例数据以便更好地理解。
test_df <- data.frame(LAT = -1*sample(50), xlat91 = sample(50), xlat92 = sample(50), xlat93 = sample(50), xlat94 = sample(50)) # sample data
test_df2 <- sapply(2:5, function(x) test_df["LAT"]*test_df[,x]) # alternative to for loop you were looking for
test_df3 <- cbind(test_df,test_df2)
new_cols <- c("xlat+91","xlat+92","xlat+93","xlat+94")
names(test_df3)[6:9] <- new_cols
test_df3 #your final answer