【问题标题】:grep works in shell but not in r.scriptgrep 在 shell 中有效,但在 r.script 中无效
【发布时间】:2017-05-15 19:02:29
【问题描述】:

当我尝试通过 grep 和子集命令选择 R 中的行时,它会在 RStudio 的 shell 中逐行运行时正确填充;但是,当我运行 r.script 时,它只会复制列(变量)名称但不会填充。

# Reads in yearly data
YearlyData <- read.csv(file="2017.csv", header = FALSE, sep=",")

# Sorts and only include TMAX and TMIN
YearlyDataTMAXMIN <- subset(YearlyData, grepl("TMAX|TMIN", YearlyData$TYPE))

基本上是 SQL 格式,我正在尝试这样做,

SELECT * FROM YearlyData WHERE TYPE in ('TMAX, TMIN')

在 R.

我错过了什么吗?

谢谢

【问题讨论】:

  • 我认为我的台词顺序是错误的。我把它移到了脚本的底部,它起作用了!

标签: r subset grepl read.csv


【解决方案1】:

更精确的 SQL 翻译应该是

subset(YearlyData, TYPE == "TMAX" | TYPE == "TMIN")

subset(YearlyData, TYPE %in% c("TMAX", "TMIN"))

语义上的区别在于 grepl 将匹配具有“TMAX”或“TMIN”作为子字符串的列,例如“0123TMAX4567”。

【讨论】:

  • 感谢您的提示!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-01-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-07-30
  • 2012-04-02
相关资源
最近更新 更多