我在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
}
}它在以下文件中显示了一些错误消息:
if (dataseti == dataseti + 1)中的错误{:参数长度为零
我不能把它作为字符串传递
df_weighted_graph1,$name <- dataset1
它保存为一个数字,而不是数据集中的名称。
任何对代码的帮助或更好的想法都是感恩的!
编辑
对于第二个输出错误
df_weighted_graph1,$name <- dataset1
这是因为没有在stringsAsFactors=False命令中使用read.csv命令。
所以,要解决这个问题应该是
read.csv(path_file,stringsAsFactors=FALSE)
发布于 2016-09-29 21:42:02
使用表函数。
table(data$value)https://stackoverflow.com/questions/39780297
复制相似问题