在数据框的特定列中连接字符串

时间:2016-03-18 19:23:38

标签: r

我尝试将Patient_ID列中的两个字符串组合在一起,但我的输出没有格式化为列。有什么问题?

 > head(Clinical)
  Patient_ID Preoperative_treat Metastasis Cancer_origin Type_of_tumor Recurrence
1       1 JH                  0          0             1             0          0
2      9 KPH                  0          0             0             0          0
3    11A PAK                  0          0             0             0          0
4      14 KS                  0          1             0             0          1
5    15 REMB                  0          0             0            NA          0
6      88 BS                  1          0             0             0          0


Clinical$Patient_ID <- paste(Clinical$Patient_ID, collapse="_")

1 个答案:

答案 0 :(得分:0)

我会解释为什么你尝试过的东西不起作用。 Patient_IDClinical中唯一的列时,最容易看到。

Clinical <- data.frame(Patient_ID = c("1 JH", "9 KPH", "11A PAK", "14 KS", "15 REMB", "88 BS"))
Clinical
#   Patient_ID
# 1       1 JH
# 2      9 KPH
# 3    11A PAK
# 4      14 KS
# 5    15 REMB
# 6      88 BS

每次观察都是长度为一的字符向量。指定collapse = "_"会将_连接到每个向量之间,而不是在向量中的文本中。

paste(Clinical$Patient_ID, collapse = "_")
# [1] "1 JH_9 KPH_11A PAK_14 KS_15 REMB_88 BS"

请注意,输出是长度为一的字符向量。

解决方案:正如其他人在评论中所说,使用gsub替换文本中的空格。

gsub("\\s", "_", Patient_ID$Clinical)
# [1] "1_JH"    "9_KPH"   "11A_PAK" "14_KS"   "15_REMB" "88_BS"