【发布时间】:2019-01-31 18:37:38
【问题描述】:
我有一个脚本,它逐渐向现有数据框 (df1) 添加一些列,然后从中获取这些列的子集并将其输出为 df2,同时重命名列。
我之前在 dplyr 中使用过 select() 函数来执行此操作,并且它之前实际上已经在类似的数据集上工作过,所以我有点难过为什么它现在突然不工作了。我看过其他一些关于使用 select() 的帖子,但没有一个对我的问题有真正的帮助。
这是我正在使用的数据的列列表和第一行:
gene_id variant_id tss_distance ma_samples ma_count maf pval_nominal slope slope_se rsid chr pos ref_allele alt gene_id_new gene_name info
ENSG00000227232.4 1_13417_C_CGAGA_b37 -16136 50 50 0.07225430 0.00908288 0.3556660 0.1354910 rs777038595 1 13417 C CGAGA ENSG00000227232 WASH7P 1
这是我选择的代码:
parsed_columns = select(df1, chr = "chr",
pos = "pos",
ref = "ref_allele",
alt = "alt",
reffrq = "maf",
info = "info",
rs = "rsid",
pval = "pval_nominal",
effalt = "slope",
gene = "gene_name")
由此我收到一条错误消息,指出引号中的所有名称do not resolve to integer positions。
我最初以为我可能只是在函数的错误一侧使用了名称(例如,它应该是 rsid = "rs"),但随后您的列在两侧都相同(例如 pos = "pos" ) 并且据说也不存在。所以我有点卡住了。任何帮助将不胜感激。
【问题讨论】:
-
使用 select 函数,新列名应该放在等号左侧的引号中,例如
"rs" = rsid