我是R編程的新手,雖然我已經編寫了很多年的其他語言。我很難通過搜索R文檔和堆棧溢出等來找到關於這個簡單問題的任何相關信息,所以一些幫助將非常感謝。如何讀取.csv數據,然後根據條件過濾創建數據的子集?
以下是問題: 從.csv讀取數據後,我需要創建一個新的數據集,其中只包含那些「值」字段介於0和100之間的觀察值(有4個字段和2500個數據行)。我在讀取數據和顯示數據方面沒有任何問題。我的問題是,當我嘗試獲取輸入數據列表並根據「值」列的範圍條件對其進行過濾時。
這裏是我輸入:
#read in the data from the sensor file
data = read.csv("C:/Code/sensor.txt", header=TRUE)
for (i in seq(4, nrow(data), 4)) {
if (as.integer(data[i])>0) {
print(data[i])
}
}
我收到錯誤輸出:
> for (i in seq(4, nrow(data), 4)) {
+ if (as.integer(data[i])>0) {
+ print(data[i])
+ }
+ }
Error: (list) object cannot be coerced to type 'integer'
編輯:
下面是一些樣本數據:
時間戳,SITEID,sensorid ,值
Thu Jan 07 00:00:00 PST 2016,1,1, 24
Thu Jan 07 00:00:00 PST 2016,1,2,5
Thu Jan 07 00:00:00 PST 2016,1,3,60
Thu Jan 07 00:00:00 PST 2016, 2,1,0
Thu Jan 07 00:00:00 PST 2016,2,2,5
Thu Jan 07 00:00:00 PST 2016,2,3,100
Thu Jan 07 00:00:00 PST 2016,3,1,36
Thu Jan 07 00:00:00 PST 2016,3,2,5
Thu Jan 07 00:00:00 PST 2016,3,3,38
Thu Jan 07 00: 00:00 PST 2016,4,1,99
Thu Jan 07 00:00:00 PST 2016,4,2,5
Thu Jan 07 00:00:00 PST 2016,4,3,84
Thu Jan 07 00:15:00 PST 2016,1,1,#錯誤#
Thu Jan 07 00:15:00 PST 2016, 1,2,5
Thu Jan 07 00:15:00 PST 2016,1,3,96
Thu Jan 07 00:15:00 PST 2016,2,1,28
Thu Jan 07 00:15: 00 PST 2016,2,2,5
2016年1月07日00:15:00 PST 2016,2,3,94
Thu Jan 07 00:15:00 PST 2016,3,1,3
Thu Jan 07 07 00:15:00 PST 2016,3,2,5
Thu Jan 07 00:15:00 PST 2016,3,3,95
Thu Jan 07 00:15:00 PST 2016,4,1,72
Thu Jan 07 00:15:00 PST 2016,4,2,5
Thu Jan 07 00:15:00 PST 2016,4,3 ,21
Thu Jan 07 00:30:00 PST 2016,1,1,160
Thu Jan 07 00:30:00 PST 2016,1,2,5
Thu Jan 07 00:30:00 PST 2016,1 ,3,34
這是偉大的,我知道了現在的工作。謝謝你的幫助! – cjbrog
如果答案滿足你,請給我向上箭頭。 –
我首先需要15個聲望,我試過了。 – cjbrog