我正在尝试从数据框中的列中删除附加的“ s。#”:
Species <- c("Dogs.1","Dogs.2","Dogs.3","Cats.1","Cats.2","Cats.3")
Breed <- c("Great Dane","Beagle","Beagle","Bengal","Tabby","Siamese")
names(Species) <- "Species"
names(Breed) <- "Breed"
pets <- as.data.frame(cbind(Species,Breed))
这将产生以下数据帧:
Species Breed
1 Dogs.1 Great Dane
2 Dogs.2 Beagle
3 Dogs.3 Beagle
4 Cats.1 Bengal
5 Cats.2 Tabby
6 Cats.3 Siamese
我希望输出看起来像这样:
Species Breed
1 Dog Great Dane
2 Dog Beagle
3 Dog Beagle
4 Cat Bengal
5 Cat Tabby
6 Cat Siamese
是否有一种方法可以操纵“种类”列来取出“。#”?
答案 0 :(得分:1)
编辑: :要从“物种”列中也删除s
,请使用以下命令。
sub("s\\..*","",pets$Species)
也要使用小写字母来覆盖小写sS
。
sub("[Ss]\\..*","",pets$Species)
请您尝试以下。
sub("\\..*","",pets$Species)
或者如果“种类”列始终具有.digits
,则使用以下内容。
sub("\\.[0-9]+","",pets$Species)
如果要将输出保存在数据框的列本身中,请使用以下命令。
pets$Species <- sub("\\..*","",pets$Species)
答案 1 :(得分:1)
我们可以在此处使用sub
。下面的专利将删除一个点后跟一个或多个数字,这是Species
文本中的最后一项。我还删除了一个可选字母s
,该字母可能会(也可能不会)出现在圆点之前。
pets$Species <- sub("s?\\.\\d+$", "", pets$Species)
pets
Species Breed
1 Dog Great Dane
2 Dog Beagle
3 Dog Beagle
4 Cat Bengal
5 Cat Tabby
6 Cat Siamese
答案 2 :(得分:0)
这是另一种解决方案:
CommandInvokationFailure: Gradle build failed.
C:/Program Files/Java/jdk1.8.0_172\bin\java.exe -classpath "C:\Program Files\Unity\Editor\Data\PlaybackEngines\AndroidPlayer\Tools\gradle\lib\gradle-launcher-2.14.jar" org.gradle.launcher.GradleMain "assembleRelease"
stderr[
C:\Users\taouf\Desktop\BusSubwayMultiplayerSale19092017\Temp\gradleOut\src\main\AndroidManifest.xml:17:3-79 Error:
Element uses-permission#android.permission.WRITE_EXTERNAL_STORAGE at AndroidManifest.xml:17:3-79 duplicated with element declared at AndroidManifest.xml:12:3-106
C:\Users\taouf\Desktop\BusSubwayMultiplayerSale19092017\Temp\gradleOut\src\main\AndroidManifest.xml Error:
Validation failed, exiting
FAILURE: Build failed with an exception.
我经常发现,当数据帧为长格式且字符串格式化为something。#或something_#时,末尾附加的#可以保存可用于分组,构面,统计信息和/的有价值的信息。或未来的数据可视化。不过,我不确定这是否是您的情况,但这是一种将信息的两位分开以保留附加信息的方法。
library(stringr)
str_extract(pets$Species, "^.*(?=s)")
[1] "Dog" "Dog" "Dog" "Cat" "Cat" "Cat"