【问题标题】:How to subset dataframe by last characters of a string in R如何通过R中字符串的最后一个字符对数据帧进行子集化
【发布时间】:2013-04-24 10:36:49
【问题描述】:

R 用户,

我有这个数据框:

head(Niger_Meteo_98.11)
  X.ID_punto    MM.GG.AA T2m_max  
1          1    01/01/98 303.235 
2          2    01/01/99 303.356 
3          3    01/01/00 303.477 
4          4    01/01/01 303.604 
5          5    01/01/02 303.759 
6          6    01/01/03 303.915 

我只需要获取 2002 年的值。 所以,我应该在MM.GG.AA 列上选择那些以“/02”结尾的行。 我没有在网上找到任何东西......任何提示? 谢谢!

【问题讨论】:

  • 如果您的列MM.GG.AA 是一个日期,我会使用as.Date 对其进行格式化。然后使用format 函数设置不带正则表达式的子集。
  • 嗨贾斯汀,我将利用你的评论。我必须为每个日期制作一个 cicle。

标签: string r dataframe subset


【解决方案1】:

使用grep 的标准子集,像这样:

x <- read.table(text="  X.ID_punto    MM.GG.AA T2m_max  
1          1    01/01/98 303.235 
2          2    01/01/99 303.356 
3          3    01/01/00 303.477 
4          4    01/01/01 303.604 
5          5    01/01/02 303.759 
6          6    01/01/03 303.915", header=TRUE)

x[grep("/02$", x$MM.GG.AA), ]

  X.ID_punto MM.GG.AA T2m_max
5          5 01/01/02 303.759

grep 正则表达式/02$ 搜索以/02 结尾的字符串,因为$ 表示字符串的结尾。

【讨论】:

  • 伟大的安德烈!你从哪里得到这个表达式的信息:“/02$ 搜索以 /02 结尾的字符串” 看看字符串的开头怎么样?
  • 函数grep接受一个正则表达式作为输入。阅读?regexp?grep 的帮助以获取更多信息。
猜你喜欢
  • 1970-01-01
  • 2019-10-21
  • 1970-01-01
  • 1970-01-01
  • 2018-09-07
  • 2021-03-20
  • 1970-01-01
  • 1970-01-01
  • 2020-06-16
相关资源
最近更新 更多