小编mic*_*ckG的帖子

在并行模式下运行具有多个参数的R函数

我有这个功能

function1 <- function(df1, df2, int1, int2, char1)
{
...
return(newDataFrame)
}
Run Code Online (Sandbox Code Playgroud)

它有5个输入:前2个是数据帧,然后我有两个整数和一个字符串.该函数返回一个新的数据框.

到目前为止,我依次运行此函数8次:

newDataFrame1 <- function1(df1, df2, 1, 1, "someString")
newDataFrame2 <- function1(df1, df2, 2, 0, "someString")
newDataFrame3 <- function1(df1, df2, 3, 0, "someString")
newDataFrame4 <- function1(df1, df2, 4, 0, "someString")
newDataFrame5 <- function1(df1, df2, 5, 0, "someString")
newDataFrame6 <- function1(df1, df2, 6, 0, "someString")
newDataFrame7 <- function1(df1, df2, 7, 0, "someString")
newDataFrame8 <- function1(df1, df2, 8, 0, "someString")
Run Code Online (Sandbox Code Playgroud)

最后我使用rbind()组合结果:

newDataFrameTot <-  rbind(newDataFrame1, newDataFrame2, newDataFrame3, newDataFrame4, newDataFrame5, newDataFrame6, newDataFrame7, …
Run Code Online (Sandbox Code Playgroud)

parallel-processing parameters performance r dataframe

5
推荐指数
2
解决办法
2116
查看次数

制作字典的深层副本

我有一个名为 baseDictionary 的字典。键是一个字符串,值是名为 myData 的类的属性。具体来说,这些属性是:“年龄”(作为 int)、“国籍”(作为字符串)和“收入”(作为 double)。

因此,baseDictionary 有一些字符串作为键,每个键都有一系列与特定人员相关的属性。我想在某个时候制作这本字典的深层副本,以便我可以使用这个新副本而不修改原始字典的内容。我在 stackoverflow 中找到了答案,其中建议使用以下代码来执行此深度复制:

public static Dictionary<TKey, TValue>
     CloneDictionaryCloningValues<TKey, TValue>(
         Dictionary<TKey, TValue> original) where TValue : ICloneable
{
    Dictionary<TKey, TValue> ret = new Dictionary<TKey, TValue>(
         original.Count, original.Comparer);

    foreach (KeyValuePair<TKey, TValue> entry in original)
    {
        ret.Add(entry.Key, (TValue) entry.Value.Clone());
    }
    return ret;
}
Run Code Online (Sandbox Code Playgroud)

问题是我不明白应该如何修改它以使其与我的字典一起使用。例如我尝试过:

public static Dictionary<string, myData> CloneDictionaryCloningValues<TKey, TValue>
                    (Dictionary<string, myData> original) where TValue : ICloneable
    {
        Dictionary<string, myData> ret = new Dictionary<string, myData>(original.Count,
                                                                original.Comparer);
        foreach (KeyValuePair<string, myData> entry in original)
        {
            ret.Add(entry.Key, (myData)entry.Value.Clone()); …
Run Code Online (Sandbox Code Playgroud)

c# dictionary copy

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