我是函数式编程语言的新手,我正在Scala中学习大学项目.
这可能看起来很简单,但我无法在网上找到足够的帮助或直接这样做 - 如何将Array [String]转换为Array [Double]?我有一个CSV文件,当读入REPL时被解释为String值(文件的每一行都有整数和字符串值的混合),这将返回一个类型Array [String].我想用double/int值对字符串值进行编码,以返回Array [Double]以使数组均匀.有这么简单的方法吗?任何指导将不胜感激.
我到现在所做的是:
def retrieveExamplesFromFile(fileName : String) : Array[Array[String]] = {
val items = for {
line <- Source.fromFile(fileName).getLines()
entries = line.split(",")
} yield entries
return items.toArray
}
Run Code Online (Sandbox Code Playgroud)
每行的格式(作为String []返回)是这样的:
[[1.0, 2.0, item1], [5, 8.9, item2],....]
Run Code Online (Sandbox Code Playgroud)
要将CSV文件中的每一行转换为双数组,我只能起草一个伪造的定义:
def generateNumbersForStringValues(values : Array[String]) : Array[Double] = {
val line = for(item <- values)
{
//correct way?
item.replace("item1", "1.0")
item.replace("item2", "1.0")
}
return //unable to typecast/convert
}
Run Code Online (Sandbox Code Playgroud)
欢迎任何想法.感谢您的时间.
我有一个包含158列和22,000行的表,我有另一个空表,我希望根据来自用户的WHERE条件动态插入值.SELECT查询将如下所示:
SELECT*FROM mygrist_tables WHERE suic_att> = 5 AND gender ='M'
这给了我大约9,000条记录(比方说).我想将这些记录插入另一个表(只是这个过滤后的数据).可能吗?任何人都可以让我了解INSERT查询的外观,以及是否需要创建包含所有这些158 cloumns的另一个表,或者INSERT查询是否可以动态创建所有这158个列?另外,我可以使用视图执行此操作还是表格必不可少?提前致谢!
我正在Scala中编写一个数据挖掘算法,我想为给定的测试和几个列车实例编写欧几里德距离函数.我有一个Array[Array[Double]]测试和训练实例.我有一个方法,它针对所有训练实例循环遍历每个测试实例,并计算两者之间的距离(每次迭代选择一个测试和训练实例)并返回a Double.
比方说,我有以下数据点:
testInstance = Array(Array(3.2, 2.1, 4.3, 2.8))
trainPoints = Array(Array(3.9, 4.1, 6.2, 7.3), Array(4.5, 6.1, 8.3, 3.8), Array(5.2, 4.6, 7.4, 9.8), Array(5.1, 7.1, 4.4, 6.9))
Run Code Online (Sandbox Code Playgroud)
我有一个方法存根(突出显示距离函数),它返回给定测试实例周围的邻居:
def predictClass(testPoints: Array[Array[Double]], trainPoints: Array[Array[Double]], k: Int): Array[Double] = {
for(testInstance <- testPoints)
{
for(trainInstance <- trainPoints)
{
for(i <- 0 to k)
{
distance = euclideanDistanceBetween(testInstance, trainInstance) //need help in defining this function
}
}
}
return distance
}
Run Code Online (Sandbox Code Playgroud)
我知道如何写一个通用的欧几里德距离公式:
math.sqrt(math.pow((x1 - y1), 2) + math.pow((x2 - y2), …Run Code Online (Sandbox Code Playgroud) 我是函数式编程和Scala的初学者.我有一个包含Double数字的数组.我想减去元素(基本上是两个数组,见示例),我无法在网上找到如何做到这一点.
例如,考虑一下
val instance = Array(Array(2.1, 3.4, 5.6),
Array(4.4, 7.8, 6.7))
Run Code Online (Sandbox Code Playgroud)
我想减去4.4 from 2.1,7.8 from 3.4和6.7 from 5.6
这可能在Scala中吗?
如果这个问题看起来非常基本但是正确方向的任何指导都会受到赞赏,那么道歉.感谢您的时间.