我尝试将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="_")
答案 0 :(得分:0)
我会解释为什么你尝试过的东西不起作用。 Patient_ID
是Clinical
中唯一的列时,最容易看到。
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"