我是R中的新手,我有这个问题:我需要计算数据帧中值的出现,但考虑顺序。考虑到元素的顺序,计算数据帧中值的出现
例子:
这是我与一列数据帧
Value
(http_inspect) BARE BYTE UNICODE ENCODING
(http_inspect) BARE BYTE UNICODE ENCODING
(http_inspect) BARE BYTE UNICODE ENCODING
WEB-MISC Chunked-Encoding transfer attempt
WEB-MISC Chunked-Encoding transfer attempt
(http_inspect) BARE BYTE UNICODE ENCODING
(http_inspect) BARE BYTE UNICODE ENCODING
WEB-MISC Chunked-Encoding transfer attempt
WEB-MISC Chunked-Encoding transfer attempt
WEB-MISC Chunked-Encoding transfer attempt
所以,我需要计数,并将其保存在一个新的数据帧
Value Frequency
(http_inspect) BARE BYTE UNICODE ENCODING 3
WEB-MISC Chunked-Encoding transfer attempt 2
(http_inspect) BARE BYTE UNICODE ENCODING 2
WEB-MISC Chunked-Encoding transfer attempt 3
到目前为止,我没找不到解决我的问题的方法,所以我编码为:
# data frame with one column
dataset <- read.csv(path_file)
# new data frame to save name and frequency
df_weighted_graph <- data.frame(
name=character(),
frequency=numeric(),
stringsAsFactors=FALSE
)
# Variables
frequency <- 1
index <- 1
# Inicialize first position
df_weighted_graph[1,]$name <- dataset[1]
df_weighted_graph$[1,]frequency <- frequency
for(i in 1:length(dataset)-1)
{
if(dataset[i] == dataset[i+1])
{
frequency <- frequency + 1
}
else{
#Update frequency
df_weighted_graph[index,]$frequency <- frequency
index <- index + 1
frequency <- 1
# New element
df_weighted_graph[index,]$name <- dataset[i]
df_weighted_graph[index,]$frequency <- frequency
}
}
它显示了一些错误消息:
错误如果(数据集[I] ==数据集[I + 1]){:参数是长度的零
,我不能够通过这个作为字符串
df_weighted_graph [1] $命名< - 数据集[1]
它SAV es作为数字而不是数据集中的名称。
任何帮助代码或更好的主意是感激!
编辑
对于第二输出误差
df_weighted_graph [1] $命名< - 数据集[1]
这是因为错过了争论stringsAsFactors = false在读.csv命令。
因此,要解决这应该是
read.csv(path_file,stringsAsFactors = FALSE)
您是否管理和尝试表函数? – Ansjovis86