相关疑难解决方法(0)

使用列表中的字符串在 R 中选择一列

我有一个变量名称列表,我想使用列表中的字符串来访问数据框中的列

list<-list("Var1", "Var2", "Var3")
df1 <- data.frame("Var1" = 1:2, "Var2" = c(21,15), "Var3" = c(10,9))
df2<- data.frame("Var1" = 1, "Var2" = 16, "Var3" = 8)
Run Code Online (Sandbox Code Playgroud)

我有 2 个不均匀的数据框,我想通过做一些基本的数学运算来创建一个新列

df1$Var4<-df1$Var1 + df2$Var1

Var4
2
3
Run Code Online (Sandbox Code Playgroud)

但是我希望能够通过参考我拥有的变量名称列表来调用我添加在一起的列名称,我已经尝试了以下两段代码,但都没有奏效

df1$Var4<- df1$List[1]+df1$list[1]

and 

Z<-list[1]
df1$Var4 <- df1$Z + df2$Z
Run Code Online (Sandbox Code Playgroud)

我不想对列名进行硬编码,因为这将创建一个用于跨数据框使用的函数,其中变量名将发生变化

任何帮助将非常感激

r dataframe

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

R:当并非所有列都是数字时的 colSums

我有以下数据框

Type   CA   AR
alpha   1   5  
beta    4   9 
gamma   3   8 
Run Code Online (Sandbox Code Playgroud)

我想获得列和行总和,使其看起来像这样:

    Type   CA   AR Total
    alpha   1   5    6
    beta    4   9    13
    gamma   3   8    11
    Total   8   22   30
Run Code Online (Sandbox Code Playgroud)

我可以做 rowSums(如上所示),我猜是因为它们都是数字。

colSums(df)
Run Code Online (Sandbox Code Playgroud)

但是,当我执行 colSums 时,我收到错误“x must be numeric”。我意识到这是因为“类型”列不是数字。

如果我执行以下代码,以便尝试将值打印到第 4 行(并且仅对第 2 到第 4 列求和)

df[,4] = colSums(df[c(2:4)]
Run Code Online (Sandbox Code Playgroud)

然后我收到一个错误,即替换与数据大小不同。

有谁知道如何解决这个问题?我想打印第 2-4 列的列总和,并将第 1 列总计留空还是允许我打印“总计”?

提前致谢!!

r

4
推荐指数
2
解决办法
3万
查看次数

标签 统计

r ×2

dataframe ×1