let parts: Vec<String> = line.split_whitespace().collect();
let parts: Vec<String> = map(AsRef::as_ref).line.split_whitespace().collect();
if parts.len() >= 3 {
let attribute_name = parts[1].to_string();
let attribute_type = parts[2].to_lowercase();
let attribute = match attribute_type.as_str() {
"numeric" => Attribute::Numeric,
"date" => Attribute::Date(parts.get(3).cloned()),
"string" => Attribute::String,
"nominal" => {
let nominal_values: Vec<String> = parts[3..]
.iter()
.map(|s| s.trim_matches(|c| c == '{' || c == '}' || c == ',').to_string())
.collect();
Attribute::Nominal(nominal_values)
}
我的目标是在Rust中实现一个用于加载和阅读.arff文件的算法。它读取一个.arff文件,从头文件、属性和示例中提取信息,然后在输出中打印出来。每个属性在数组属性中表示为一对(名称、类型),示例存储为属性值数组 在数组示例中。
1条答案
按热度按时间smtd7mpg1#
您需要Map向量的值。就像这样: