【发布时间】:2020-10-08 20:07:37
【问题描述】:
我有一个 data.frame
test_data <- read.csv("https://stepik.org/media/attachments/course/724/test_data_01.csv",
stringsAsFactors = FALSE)
这个 data.frame 看起来像这样:
V1 V2 V3 V4 V5
1 -2. 5935 II 2 0.4984 ST 123E -2.154 4
2 -0.2888 ST 123E 1.5636 ST 123E 0.1053
3 -0.828 6 ST 123E -0.9 791 HP 129 -0. 4989
4 -0. 322 ST 123E -0.3013 HP 129 -0.4032
5 -0.5588 ST 123E 1.2694 HP 129 0.703 9
我的目标: 1) 只排序实数(V1、V3、V5)
num_test<-test_data[sapply(test_data, function(x) grepl("[A-Za-z]", x, perl = T))==F]
2) 在实数(V1, V3, V5) 中删除空格,然后将 V1、V3、V5 因子更改为数字
str_remove_all(num_test," ")
但我不明白如何返回带有更改的 data.frame。它应该是这样的:
V1 V2 V3 V4 V5
1 -2.5935 II 2 0.4984 ST 123E -2.1544
2 -0.2888 ST 123E 1.5636 ST 123E 0.1053
3 -0.8286 ST 123E -0.9791 HP 129 -0.4989
4 -0.3220 ST 123E -0.3013 HP 129 -0.4032
5 -0.5588 ST 123E 1.2694 HP 129 0.7039
谢谢!
【问题讨论】:
-
(1)
perl=TRUE在这里是不必要的,你只是在放慢速度。 (2)(...) == F应该是! (...)或isFALSE(...)。 (3) 除了将as.numeric添加到您的空白删除之外,这其中的哪些部分不起作用?是否只是将这些值重新分配回原始框架?
标签: r function dataframe removing-whitespace