小编Mar*_*ius的帖子

k-表示R中的返回值

我在R中使用kmeans()函数,我很好奇返回对象的totsstot.withinss属性之间的区别是什么.从文档中他们似乎返回相同的东西,但在我的数据集上应用totss的值是66213.63,而tot.withinss的值是6893.50.如果您熟悉mroe细节,请告诉我.谢谢!

马吕斯.

r k-means least-squares

13
推荐指数
1
解决办法
1万
查看次数

R base函数根据长度对字符串向量进行排序

我想知道在R基础包中是否有一个已经制作的函数可以对字符串向量进行排序,同时考虑每个元素的长度,当然还有字典顺序.例如,在对某些持有年龄组的矢量进行排序调用后,您将拥有:

v <- c("00-04", "05-09", "10-14", "100-104", "105-109", "110-114", "15-19", "20-24"..etc)
Run Code Online (Sandbox Code Playgroud)

而我想:

v <- c("00-04", "05-09", "10-14", "15-19", "20-24"..etc.. "100-104", "105-109", "110-114")
Run Code Online (Sandbox Code Playgroud)

sorting r string-length

6
推荐指数
1
解决办法
5414
查看次数

java - StringUtils.join()返回指针

我试图通过StringUtils.join(array, separator)Apache commons库中的方法加入数组的元素.任何人都可以解释我为什么我不能得到结果字符串,只有一个指向其位置的指针,如果我使用一个原始类型的数组,如int[]?请参阅下面的示例代码:

public static void main(String[] args){

    String[] s = new String[]{"Anna","has", "apples"};
    System.out.println(StringUtilities.join(s, " "));

    int[] a = new int[]{1,2,3};
    System.out.println(StringUtilities.join(a, " "));

    Integer[] b = new Integer[]{1,2,3};
    System.out.println(StringUtilities.join(b, " "));
}
Run Code Online (Sandbox Code Playgroud)

只使用Integer数组工作.我理解基元的数组内部处理方式与ArrayList或其他更高阶的对象不同,但是为什么有可能(相同的主题或多或少但可能是一个不同的问题)实例化HashMap<String, int[]>没有任何警告,异常?数组内部是否包含在另一个对象中?仅适用于地图?根据我从文档中读到的内容,您无法使用原始类型对地图,集合,数组列表等进行参数化,这是我理解的,但后来......我发现它有点令人困惑.任何合理的解释将不胜感激.谢谢.

java primitive types return-value

5
推荐指数
1
解决办法
620
查看次数

将长度不均匀的列表向量转换为矩阵

我有一个向量,以及一个只有一列的数据框,其中包含长度不均匀的列表:

data = list(
c(349, 364, 393, 356, 357, 394, 334, 394, 343, 365, 349),
c(390, 336, 752, 377),
c(670, 757, 405, 343, 1109, 350, 372),
c(0, 0),
c(),
c(1115, 394, 327, 356, 408, 329, 385, 357, 357))
Run Code Online (Sandbox Code Playgroud)

我想将其转换为矩阵,用NA. 所以它应该看起来像这样:

349, 364, 393, 356, 357, 394, 334, 394, 343, 365, 349
390, 336, 752, 377, NA,  NA,  NA,  NA,  NA,  NA,  NA
670, 757, 405, 343, 1109,350, 372, NA,  NA,  NA,  NA
0,   0,   NA,  NA,  NA,  NA, …
Run Code Online (Sandbox Code Playgroud)

r list matrix coercion

4
推荐指数
1
解决办法
1735
查看次数

r - 计算相同行数

我希望这不是一个重复的问题(尽我所能,看看它是否已被问到).我有一个数据框,想要计算有多少行相同.

df = data.frame(ID = c("id1", "id2", "id3", "id4", "id5", "id6", "id7", "id8", "id9"),
            Val1 = c("A", "B", "C", "A", "A", "B", "D", "C", "D"),
            Val2 = c("B", "C", NA, "B", "B", "D", "E", "D", "E"),
            Val3 = c("C", NA, NA, "C", "C", "B", NA, NA,NA),
            Val4 = c("D", NA, NA, "E", "D", NA, NA, NA, NA))
> df
   ID Val1 Val2 Val3 Val4
1 id1    A    B    C    D
2 id2    B    C <NA> <NA>
3 id3    C <NA> …
Run Code Online (Sandbox Code Playgroud)

row r count matrix

2
推荐指数
1
解决办法
1314
查看次数

从大型相关矩阵中提取唯一对

我有一个相当大的数据集(约 50K 条目),我用它来生成相关矩阵。这效果很好,“仅”使用约 20GB RAM。

然后,我想从中提取唯一的成对组合并将其转换为数据框。这就是我遇到问题的地方。RAM 使用量过多或索引变量溢出。我知道有 >2B 的组合,所以我知道它的大小有点爆炸,但仍然..

我尝试了不同的方法来实现这一目标,但没有成功。

模拟数据:

df = matrix(runif(1),nrow=50000, ncol=50000, dimnames=list(seq(1,50000,by=1), seq(1,50000,by=1)))
Run Code Online (Sandbox Code Playgroud)

尝试从相关矩阵中提取上/下三角形,然后重塑它:

df[lower.tri(df, diag = T),] = NA
df = reshape2::melt(df, na.rm = T)
Run Code Online (Sandbox Code Playgroud)

崩溃:

Error in df[lower.tri(bla, diag = T), ] = NA : 
  long vectors not supported yet: ../../src/include/Rinlinedfuns.h:522
Run Code Online (Sandbox Code Playgroud)

如果您只执行以下操作,它会因相同的错误而崩溃:(df = df[lower.tri(df, diag = T),] 我确实阅读了R 中的大型矩阵:尚不支持长向量,但我发现它对我的情况没有帮助)

我也尝试过:

df = subset(as.data.frame(as.table(df)),
       match(Var1, names(annotation_table)) > match(Var2, names(annotation_table)))
Run Code Online (Sandbox Code Playgroud)

仅使用基于 R 的软件包,但最终在大约 1 天后耗尽了内存。这是 RAM 最密集的部分:as.data.frame(as.table(df))所以我也尝试用它替换它reshape2::melt(df),但它也耗尽了 RAM

我在具有 …

r matrix duplicates large-data

2
推荐指数
1
解决办法
156
查看次数

删除所有重复行,包括“引用”行

我正在寻找一种从向量中删除所有重复元素的方法,包括参考元素。通过参考元件我的意思是这是目前用在比较中,要搜索其重复的元素。例如,如果我们考虑这个向量:

a = c(1,2,3,3,4,5,6,7,7,8) 
Run Code Online (Sandbox Code Playgroud)

我想获得:

b = c(1,2,4,5,6,8)
Run Code Online (Sandbox Code Playgroud)

我知道的duplicated()unique(),但他们没有提供我正在寻找的结果。

r duplicate-removal

1
推荐指数
1
解决办法
276
查看次数

为什么输出字符串周围有三组双引号

我对python相当陌生。遵循此处的建议,试图强制使用一双引号(例如,"my_string")输出字符串,但最终总是这样打印:"""my_string"""

知道为什么吗?

我试过: '"' + my_string + '"'and f'"{self.args["name"]}"'and str(my_string)and"\"" + my_String + "\""但同样的行为:

"""my_string"""

代码片段:

def print_out(self):
    self.args = {}
    self.args["name"] = 001
    self.bla = 1
    self.tra = 0
    self.val = 0.12445
    with open("my_file", "w") as fout:
          tsv = csv.writer(fout, delimiter="\t")
          tsv.writerow(["name", "bla", "tra", "hehe"])
          tsv.writerow(
                    [f'"{self.args["name"]}"', self.bla, self.tra, round(self.val, 2)]
          )
Run Code Online (Sandbox Code Playgroud)

在上面的例子中,self.args["name"]打印为"""001"""

谢谢

python string formatting

1
推荐指数
1
解决办法
163
查看次数