r - 从前一个 df 创建一个新的 df,然后用 R 将 2 列合二为一
问题描述
大家好,我希望你们一切都好!
我需要帮助 id 命令才能从以前的 df1 创建另一个 df2。
df1 <- data.frame(Query= c("Segm1_Z_-__SP1_A", "Segm1_Y_", "Segm3_Z_-__SP2_A", "Segm3_K_-__SP2_B", "Segm1_Z_+__SP3_A"),
Target= c("XP_0001", "XP_0001", "XP_0001", "XP_0002", "XP_0002"),
Val1= c(1, 1, 1, 0, 1),
Val2= c(0.009, 0.010, 0.011, 0.012, 0.013))
这是df1:
Query Target Val1 Val2
Segm1_Z_-__SP1_A XP_0001 1 0.009
Segm1_Y_+__SP1_A XP_0001 1 0.010
Segm3_Z_-__SP2_A XP_0001 1 0.011
Segm3_K_-__SP2_B XP_0002 0 0.012
Segm1_Z_+__SP3_A XP_0002 1 0.013
我想得到一个带有 new_col 的 df2 来替换Query
和Target
;
New_col Val1 Val2
Segm1_Z_-__SP1_A 1 0.009
Segm1_Y_+__SP1_A 1 0.010
Segm3_Z_-__SP2_A 1 0.011
Segm3_K_-__SP2_B 0 0.012
Segm1_Z_+__SP3_A 1 0.013
XP_0001 NA NA
XP_0002 NA NA
有人有想法吗?
解决方案
你的意思是这样的吗?
dplyr::bind_rows(df,data.frame(Query=unique(df$Target),stringsAsFactors = FALSE))
# Query Target Val1 Val2
#1 Segm1_Z_-__SP1_A XP_0001 1 0.009
#2 Segm1_Y_+__SP1_A XP_0001 1 0.010
#3 Segm3_Z_-__SP2_A XP_0001 1 0.011
#4 Segm3_K_-__SP2_B XP_0002 0 0.012
#5 Segm1_Z_+__SP3_A XP_0002 1 0.013
#6 XP_0001 <NA> NA NA
#7 XP_0002 <NA> NA NA
数据
df <- structure(list(Query = c("Segm1_Z_-__SP1_A", "Segm1_Y_+__SP1_A",
"Segm3_Z_-__SP2_A", "Segm3_K_-__SP2_B", "Segm1_Z_+__SP3_A"),
Target = c("XP_0001", "XP_0001", "XP_0001", "XP_0002", "XP_0002"
), Val1 = c(1L, 1L, 1L, 0L, 1L), Val2 = c(0.009, 0.01, 0.011,
0.012, 0.013)), row.names = c(NA, -5L), class = "data.frame")
推荐阅读
- java - 使用 QuerySpec 从 DynamoDB 中获取记录
- java - Liferay 7.2/7.3 错误:“PWC6033:JSP 的 Javac 编译出错”
- php - 为什么在 html 中提交不能正常工作?
- python - 如何在python中读取外部文件?
- python - 不忽略 db.sqlite3 文件,即使我在 django 项目的 .gitignore 中指定
- java - 用户输入中的非重复数字
- android - Android:英特尔 x86 仿真器加速器 HAXM 安装程序 - “修订:7.5.6”更新失败
- ruby-on-rails - 如何在 RSPEC 中测试链调用?
- php - 在laravel中bcrypt密码后我无法登录
- c# - 如何在 asp.net core 中设置用户特定的会话超时