r - 使用 for 循环分配值
问题描述
R中有没有办法使用for循环在现有数据框中创建新列并将值分配给新创建的列?
s_0133_AFE_Nr_Dr_CM['CM_2018001'] = s_0133_AFE_Nr_Dr_CM$AFE_Cost_2018001/s_0133_AFE_Nr_Dr_CM$Dr_2018001
s_0133_AFE_Nr_Dr_CM['CM_2018002'] = s_0133_AFE_Nr_Dr_CM$AFE_Cost_2018002/s_0133_AFE_Nr_Dr_CM$Dr_2018001
s_0133_AFE_Nr_Dr_CM['CM_2018003'] = s_0133_AFE_Nr_Dr_CM$AFE_Cost_2018003/s_0133_AFE_Nr_Dr_CM$Dr_2018001
s_0133_AFE_Nr_Dr_CM['CM_2018004'] = s_0133_AFE_Nr_Dr_CM$AFE_Cost_2018004/s_0133_AFE_Nr_Dr_CM$Dr_2018001
s_0133_AFE_Nr_Dr_CM['CM_2018005'] = s_0133_AFE_Nr_Dr_CM$AFE_Cost_2018005/s_0133_AFE_Nr_Dr_CM$Dr_2018001
s_0133_AFE_Nr_Dr_CM['CM_2018006'] = s_0133_AFE_Nr_Dr_CM$AFE_Cost_2018006/s_0133_AFE_Nr_Dr_CM$Dr_2018001
s_0133_AFE_Nr_Dr_CM['CM_2018007'] = s_0133_AFE_Nr_Dr_CM$AFE_Cost_2018007/s_0133_AFE_Nr_Dr_CM$Dr_2018001
s_0133_AFE_Nr_Dr_CM['CM_2018008'] = s_0133_AFE_Nr_Dr_CM$AFE_Cost_2018008/s_0133_AFE_Nr_Dr_CM$Dr_2018001
s_0133_AFE_Nr_Dr_CM['CM_2018009'] = s_0133_AFE_Nr_Dr_CM$AFE_Cost_2018009/s_0133_AFE_Nr_Dr_CM$Dr_2018001
s_0133_AFE_Nr_Dr_CM['CM_2018010'] = s_0133_AFE_Nr_Dr_CM$AFE_Cost_2018010/s_0133_AFE_Nr_Dr_CM$Dr_2018001
s_0133_AFE_Nr_Dr_CM['CM_2018011'] = s_0133_AFE_Nr_Dr_CM$AFE_Cost_2018011/s_0133_AFE_Nr_Dr_CM$Dr_2018001
s_0133_AFE_Nr_Dr_CM['CM_2018012'] = s_0133_AFE_Nr_Dr_CM$AFE_Cost_2018012/s_0133_AFE_Nr_Dr_CM$Dr_2018001
这可以用一些循环写成 1 行吗?请注意,我们通过创建新列来分配值。我尝试使用 assing() 函数,但它 R 在数据框之外创建新变量,而不是将其添加到同一数据框中
解决方案
你当然可以。只需分配多个列paste0
以及一系列数字:
s_0133_AFE_Nr_Dr_CM[paste0("CM_", 2018001:2018012)] <- s_0133_AFE_Nr_Dr_CM[paste0("AFE_Cost_", 2018001:2018012)]/s_0133_AFE_Nr_Dr_CM$Dr_2018001
推荐阅读
- java - 如何添加自定义标题
到 Spring Boot HttpHeaders? - javascript - 在 javascript 中隐式导入函数
- ruby-on-rails - TypeError:没有将 Rake::FileTask 隐式转换为字符串
- aws-appsync - AWS AppSync OIDC
- c++ - CMake:add_executable 不会在 Windows 操作系统下生成可执行文件
- c++ - 数组 C++ 中的最长连续序列
- php - 使用 LARAVEL 6.5.0 左连接并仅返回右表中的最新记录
- c# - 在 XMAL/C# 中的页面之间传递“间接”对象
- amazon-web-services - AWS CDK 与 AWS Amplify
- firebase - 如何在颤动中显示来自 Firestore 数据的文本?