我在数据中的前导和尾随空格方面遇到了一些问题.框架

例如,我根据特定条件查看data.frame中的特定row:

> myDummy[myDummy$country == c("Austria"),c(1,2,3:7,19)] 



[1] codeHelper     country        dummyLI    dummyLMI       dummyUMI       

[6] dummyHInonOECD dummyHIOECD    dummyOECD      

<0 rows> (or 0-length row.names)

我想知道为什么我没有得到预期的yields ,因为奥地利显然存在于我data.frame岁的时候.在查看了我的代码历史并试图找出哪里出了问题后,我try :

> myDummy[myDummy$country == c("Austria "),c(1,2,3:7,19)]
   codeHelper  country dummyLI dummyLMI dummyUMI dummyHInonOECD dummyHIOECD
18        AUT Austria        0        0        0              0           1
   dummyOECD
18         1

我在命令中所做的更改是在奥地利之后增加一个空格.

显然,还会出现更多恼人的问题.例如,当我喜欢基于country列合并两个帧时.一个data.frame使用"Austria ",而另一个帧使用"Austria".匹配不起作用.

  1. 有没有一种好方法可以"显示"屏幕上的空白,让我意识到这个问题?
  2. 我能go 掉R中的前导和尾随空格吗?

到目前为止,我曾经写过一个简单的Perl脚本来删除空格,但如果我能在R中实现这一点,那就太好了.

推荐答案

最好的方法可能是在读取数据文件时处理尾随的空格.如果使用read.csvread.table,可以设置参数strip.white=TRUE.

如果要在之后清理字符串,可以使用以下函数之一:

# Returns string without leading white space
trim.leading <- function (x)  sub("^\\s+", "", x)

# Returns string without trailing white space
trim.trailing <- function (x) sub("\\s+$", "", x)

# Returns string without leading or trailing white space
trim <- function (x) gsub("^\\s+|\\s+$", "", x)

要在myDummy$country上使用以下功能之一:

 myDummy$country <- trim(myDummy$country)

要"显示"您可以使用的空白:

 paste(myDummy$country)

这将显示由引号(")包围的字符串,使空格更容易识别.

R相关问答推荐

for循环和if else在R中

使用split.zoo界定xts物体的降水事件

pivot_longer:names_to和names_pattern

如何替换某个字符的所有出现,但如果该字符是字符串中的第一个,则不替换?

如果窗口在CLARME或集团之外,则有条件领先/滞后滚动总和返回NA

用单个表达匹配多个替代模式

使用对管道内单元格的引用生成新变量

如何使用stat_extract_all正确提取我的目标值?

以R中的正确顺序将日期时间字符列转换为posixct

当两个图层映射到相同的美学时,隐藏一个图层的图例值

用值序列对行进行子集化,并标识序列开始的列

我如何才能找到FAMILY=POISSON(LINK=&Q;LOG&Q;)中的模型预测指定值的日期?

如何使用ggplot对堆叠条形图进行嵌套排序?

以相同的方式对每个表进行排序

将Posict转换为数字时的负时间(以秒为单位)

如何计算R glm probit中的线性预测因子?

将项粘贴到向量中,并将它们分组为x的倍数,用空格分隔

将统计检验添加到GGPUBR中的盒图,在R

是否有一个R函数可以输出在输入的字符向量中找到的相应正则表达式模式?

如何使用grepl()在数据帧列表中 Select 特定字符串?