相关疑难解决方法(0)

在R中,如何在将对象的名称发送到函数后获取它?

我正在寻找相反的get().

给定一个对象名称,我希望有一个表示该对象的字符串直接从该对象中提取.

foo作为我正在寻找的功能的占位符的简单示例.

z <- data.frame(x=1:10, y=1:10)

test <- function(a){
  mean.x <- mean(a$x)
  print(foo(a))
  return(mean.x)}

test(z)
Run Code Online (Sandbox Code Playgroud)

会打印:

  "z"
Run Code Online (Sandbox Code Playgroud)

我的工作,在我目前的问题中更难实现的是:

test <- function(a="z"){
  mean.x <- mean(get(a)$x)
  print(a)
  return(mean.x)}

test("z")
Run Code Online (Sandbox Code Playgroud)

r

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

将新列添加到表或数据框列表中的每个元素

我有一个文件列表.我还有一个"名称"列表,我substr()从这些文件的实际文件名中获取.我想为列表中的每个文件添加一个新列.此列将包含"names"中相应元素,重复次数为文件中的行数.

例如:

df1 <- data.frame(x = 1:3, y=letters[1:3])
df2 <- data.frame(x = 4:6, y=letters[4:6])
filelist <- list(df1,df2)
ID <- c("1A","IB")
Run Code Online (Sandbox Code Playgroud)

伪代码

  for( i in length(filelist)){

       filelist[i]$SampleID <- rep(ID[i],nrow(filelist[i])

  }
Run Code Online (Sandbox Code Playgroud)

//基本上在filelist的每个数据框中创建一个新列,并用重复的相应ID值填充该列

我的输出应该是这样的:

filelist[1] 应该:

   x y SAmpleID
 1 1 a       1A
 2 2 b       1A
 3 3 c       1A
Run Code Online (Sandbox Code Playgroud)

fileList[2]

   x y SampleID
 1 4 d       IB
 2 5 e       IB
 3 6 f       IB
Run Code Online (Sandbox Code Playgroud)

等等.....

任何想法如何做到这一点.

r

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

使用 R 中数据框列表中的数据框名称附加新列

给定数据帧列表l如下:

l <- list(a = data.frame(a_1 = c(11, 12),
                        a_2 = c(13, 14)),
          b = data.frame(b_1 = c(21, 22),
                        b_2 = c(23, 24)),
          c = data.frame(c_1 = c(31, 32),
                          c_2 = c(33, 34)))
print(l)
Run Code Online (Sandbox Code Playgroud)

出去:

在此输入图像描述

现在我想new_col使用每个数据框的名称附加一个新列:

l[['a']]$new_col = 'a'
l[['b']]$new_col = 'b'
l[['c']]$new_col = 'c'
Run Code Online (Sandbox Code Playgroud)

names(l)我想知道如何自动使用哪个为每个数据框附加列[1] "a" "b" "c"?谢谢。

最终的结果会是这样的:

在此输入图像描述

r plyr dataframe dplyr

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

标签 统计

r ×3

dataframe ×1

dplyr ×1

plyr ×1