これについて助けが必要です。再び数時間苦労しました.......
# open file for data connection
data <- file("data.log", open = "r")
# do readlines for the first
# there should be more than 500 lines for thousands of observations
rl <- readLines(data)
データに含まれていないラベル/ヘッダー: 時間、グループ、タスク、完了かどうか、時間、クレジット
[1] 10:00 A task1 comp 5:00 200
[2] 16:00 A task2 comp 3:00 100
[3] 11:00 B task1 incomp 7:00 100
[4] 17:00 B task2 comp 7:00 100
[5] 15:00 C task1 incomp 5:00 420
[6] 19:00 C task2 comp 6:00 115
したがって、行を抽出してまとめる必要があります。これは次のようになります。
[1] 10:00 A task1 comp 5:00 100
[2] 16:00 B task2 comp 3:00 100
[3] 11:00 A task1 incomp 7:00 100
[4] 17:00 B task2 comp 7:00 100
[5] 15:00 A task1 incomp 5:00 100
[6] 19:00 B task2 comp 6:00 100
私はいくつかの関数を書きましたが、これは実行する可能性が最も高いものの、まだエラーが発生しているものです。
fuc = function(filename = "data.log")
{
rl = readLines(data)
spl = strsplit(rl[-1], " ") #split data with spaces
pattern = grep("A.* 100", spl, value = TRUE) #grep the lines that have group A and credit 100
if(pattern !=0) #if the pattern grep is different from 0
{
pattern2 = grep("B.*100", spl, value = TRUE) #grep lines that have group B and credit 100 that follows pattern above
if(pattern2 !=0) #if pattern2 is different from 0
print(pattern)
}
この関数は正常に実行され、データで試します
fuc("data.log")
エラーが発生しました:
Error in if (pattern != 0) { : argument is of length zero
私は他の人から提案を受けました。すでにデータをstrsplitしているので、次のような方法でgrepできます
grep(x[2] == "A" & x[6] == "100", x[2] == "B" & x[6] == "100", spl, value = TRUE)
しかし、それは機能していません.....
私を助けてください