从 R 中的数据框中的列中删除一些文本字符串和字符
Removing some text string and characters from a column in dataframe in R
我知道过去有人以不同的方式问过这个问题。但是,我迷失了 gsub
.
我有这个数据框:
df <- structure(list(Real = c(7.76, 5.55, 4.8, 4.68, 7.43, 4.59), Predicted = c(7.36,
5.28, 5.12, 4.47, 7.48, 4.69), PdivR = c(0.95, 0.95, 1.07, 0.96,
1.01, 1.02), Regression = c("`TLC`~`7_A`.152534", "`TLC`~`7_A`.158324",
"`TLC`~`7_A`.611461", "`TLC`~`7_A`.627267", "`TLC`~`7_A`.674564",
"`TLC`~`7_A`.675169")), row.names = c(NA, 6L), class = "data.frame")
可以这样显示的:
head(df)
Real Predicted PdivR Regression
1 7.76 7.36 0.95 `TLC`~`7_A`.152534
2 5.55 5.28 0.95 `TLC`~`7_A`.158324
3 4.80 5.12 1.07 `TLC`~`7_A`.611461
4 4.68 4.47 0.96 `TLC`~`7_A`.627267
5 7.43 7.48 1.01 `TLC`~`7_A`.674564
6 4.59 4.69 1.02 `TLC`~`7_A`.675169
我想删除 Regression
列中的点 .
和点右边的数字,以及这个符号(上逗号),以便仅保留 TLC ~ 7_A
.
请注意,右侧数字的数量沿列不同,但行为相同。
我如何用 gsub
做到这一点?
我们可以匹配 .
(\.
- 转义,因为它是一个匹配任何字符的元字符)和一个或多个数字 (\d+
) 直到结束 ($
) 并替换为空白 (""
) 并用 gsub
换行以匹配反引号 ("`") 并将其删除
df$Regression <- gsub("`", "", sub("\.\d+$", '', df$Regression))
df$Regression
[1] "TLC~7_A" "TLC~7_A" "TLC~7_A" "TLC~7_A" "TLC~7_A" "TLC~7_A"
我知道过去有人以不同的方式问过这个问题。但是,我迷失了 gsub
.
我有这个数据框:
df <- structure(list(Real = c(7.76, 5.55, 4.8, 4.68, 7.43, 4.59), Predicted = c(7.36,
5.28, 5.12, 4.47, 7.48, 4.69), PdivR = c(0.95, 0.95, 1.07, 0.96,
1.01, 1.02), Regression = c("`TLC`~`7_A`.152534", "`TLC`~`7_A`.158324",
"`TLC`~`7_A`.611461", "`TLC`~`7_A`.627267", "`TLC`~`7_A`.674564",
"`TLC`~`7_A`.675169")), row.names = c(NA, 6L), class = "data.frame")
可以这样显示的:
head(df)
Real Predicted PdivR Regression
1 7.76 7.36 0.95 `TLC`~`7_A`.152534
2 5.55 5.28 0.95 `TLC`~`7_A`.158324
3 4.80 5.12 1.07 `TLC`~`7_A`.611461
4 4.68 4.47 0.96 `TLC`~`7_A`.627267
5 7.43 7.48 1.01 `TLC`~`7_A`.674564
6 4.59 4.69 1.02 `TLC`~`7_A`.675169
我想删除 Regression
列中的点 .
和点右边的数字,以及这个符号(上逗号),以便仅保留 TLC ~ 7_A
.
请注意,右侧数字的数量沿列不同,但行为相同。
我如何用 gsub
做到这一点?
我们可以匹配 .
(\.
- 转义,因为它是一个匹配任何字符的元字符)和一个或多个数字 (\d+
) 直到结束 ($
) 并替换为空白 (""
) 并用 gsub
换行以匹配反引号 ("`") 并将其删除
df$Regression <- gsub("`", "", sub("\.\d+$", '', df$Regression))
df$Regression
[1] "TLC~7_A" "TLC~7_A" "TLC~7_A" "TLC~7_A" "TLC~7_A" "TLC~7_A"