对gsub正在做什么感到困惑

时间:2016-01-28 04:36:40

标签: r

还是r的新手,我对gsub正在做的事感到困惑。我的数据看起来像

enter image description here

我想删除字符串中的FROM。所以,我使用gsub作为:

x <- gsub("FROM","",x)

我认为gsub会遍历所有字符串并删除所有FROM并返回我的对象​​。但是,它会创建一个x值,并列出所有数据。

我尝试x <- as.data.frame(x)查看它是否会将值转换为数据,但创建了一个data.frame,其中包含两个包含所有字符串和数字的obs。

我需要做什么才能从数据中删除字符串并将其保存为data.frame?

3 个答案:

答案 0 :(得分:2)

您似乎正在尝试在整个数据框上运行gsub()。正确的方法是在要替换字符串的列上运行gsub()

例如,如果要替换Offense列中的字符串,则运行:

x$Offense <- gsub('FROM', '', x$Offsense, fixed = TRUE)

这将替换From列每行中出现的所有Offense。您生成的数据框x将不再包含From列中的字符串Offense

答案 1 :(得分:2)

与其他评论一样,@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.my_about); /** * YOUR OTHER CODE * * */ ((TextView) findViewById(R.id.about_body)).setText(Html.fromHtml(getString(R.string.about_body))); } 适用于列。但是,您可以使用gsub

轻松地将其运行到data.frame中的每一列
apply.

答案 2 :(得分:0)

gsub("FROM", "", input)就像你说的那样。它将循环遍历您在input参数中指定的列向量,并使用"FROM"替换列的每个字符串元素中的""的每个实例。请参阅下面的示例,使用您的数据子集。列offense2包含已清理的数据。

df <- data.frame(c(1,2,3))
names(df)[1] <- "counts"
df$offense <- c("THEFT - (FROM MOTOR VEHICLE)", "THEFT - (ALL OTHER LARCENY)", "THEFT - (THEFT FROM BUILDING)")
df$offense2 <- gsub("FROM", "", df$offense)

> df
  counts                       offense                    offense2
1      1  THEFT - (FROM MOTOR VEHICLE)    THEFT - ( MOTOR VEHICLE)
2      2   THEFT - (ALL OTHER LARCENY) THEFT - (ALL OTHER LARCENY)
3      3 THEFT - (THEFT FROM BUILDING)   THEFT - (THEFT  BUILDING)