代码之家  ›  专栏  ›  技术社区  ›  BallerNacken

r-每行出现正斜杠的次数

row r
  •  0
  • BallerNacken  · 技术社区  · 6 年前

    我有一个这样的数据框架:

    12/04/2017 00:00:02.30,-2.31,-2.97,-0.3,-1.4
    12/04/2017 00:00:02.40,-1.89,-2.94,-1.15,-1.4
    12/04/2017 00:00:02.50,-1.66,-3.14,-0.06,-1.39
    12/04/2017 00:00:02.60,-1.84,-3.16,0.18,-1.37
    12/04/2017 00:00:02.70,-2.12/04/2017 00:00:02.80,-2,-2.56,0.17,-1.41
    12/04/2017 00:00:02.90,-2.18,-2.31,0.11,-1.45
    12/04/2017 00:00:03,-2.14,-2.21,-0.05,-1.45
    

    数据来自somtimes的记录器将其中一个日期写入另一行的行(示例中的第5行)。我需要在R中删除这些行,但是我真的不知道如何在数据框架中找到和删除这些行。

    我的第一个想法是在每行中查找正斜杠的数量。但是找不到一种方法来解决这个问题。
    另一种方法可能是获取所有行的平均长度,检查是否有长于平均值的行,然后删除这些行。但这里也一样。找不到对行中所有字符(字符串和数字)进行平均的方法。

    编辑:str(df)的输出: 强度(df)

    'data.frame':   856645 obs. of  6 variables:
     $ station: chr  "Arof" "Arof" "Arof" "Arof" ...
     $ date   : Factor w/ 863989 levels "12/04/2017 00:00:01.10",..: 1 2 3 4 5 6 7 8 9 10 ...
     $ u      : Factor w/ 1327 levels "","0","-0.01",..: 132 84 146 136 112 120 126 33 281 240 ...
     $ v      : num  -0.62 -0.41 -1.58 -1.65 -1.25 -1.8 -1.86 -2.46 -2.59 -2.87 ...
     $ w      : num  0.89 1.09 0.63 0.53 0.84 0.58 0.46 0.48 -0.16 -0.01 ...
     $ temp   : num  -1.36 -1.41 -1.41 -1.41 -1.41 -1.41 -1.5 -1.48 -1.51 -1.46 ...
     - attr(*, "na.action")=Class 'omit'  Named int [1:7344] 18 113 246 378 513 643 646 778 909 1042 ...
      .. ..- attr(*, "names")= chr [1:7344] "18" "113" "246" "378" ...
    
    1 回复  |  直到 6 年前
        1
  •  1
  •   A. Suliman    6 年前

    grepl

    grepl("\\.\\d{2}\\/",data$date)
    [1] FALSE FALSE FALSE FALSE  TRUE FALSE FALSE
    
    apply(data,1, function(x) sum(grepl("\\.\\d{2}\\/",x)))