相关疑难解决方法(0)

R是否适用于家庭而不是语法糖?

......关于执行时间和/或记忆.

如果不是这样,请使用代码段进行证明.请注意,矢量化的加速不计算在内.增速必须来自apply(tapply,sapply,...)本身.

r apply

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

列表中的数据帧; 添加名为dataframe的新变量

我有一个数据帧列表,我最终想要合并,同时保留其原始数据帧名称或列表索引的记录.这将允许我跨所有行的子集等.为了实现这一点,我想为每个数据帧添加一个新的变量"id",其中包含它所属的数据帧的名称/索引.

编辑:"在我的真实代码中,数据框变量是通过使用以下代码读取多个文件而创建的,所以我没有实际名称只有'files.to.read'列表中的那些我不确定它们是否会对齐使用数据框顺序:

mylist <- llply(files.to.read, read.csv)
Run Code Online (Sandbox Code Playgroud)

在几个帖子中突出了一些方法: 使用数据框架在列表中的drop-variables-add-new-ones使用lapply-with-changing-arguments

我尝试了两种类似的方法,第一种使用索引列表:

df1 <- data.frame(x=c(1:5),y=c(11:15))
df2 <- data.frame(x=c(1:5),y=c(11:15))
mylist <- list(df1,df2)

# Adds a new coloumn 'id' with a value of 5 to every row in every dataframe.
# I WANT to change the value based on the list index.
mylist1 <- lapply(mylist, 
    function(x){
        x$id <- 5
        return (x)
    }
)
#Example of what I WANT, instead of '5'.
#> mylist1
#[[1]]
  #x  y id
#1 1 11  1
#2 2 …
Run Code Online (Sandbox Code Playgroud)

r list names lapply dataframe

15
推荐指数
2
解决办法
8759
查看次数

从R中的每个列表元素中减去值

我需要从R.每个列表元素在减去指定的值,被提到的文章,对于这样的任务apply系列函数来代替循环.我试过以下:

# Define list
> a = 1:20

# Substraact this from each element
> substract_me = 5

# Function for substracting
> substract = function(x,y) { ret = x-y; return(ret) }

# The problem is that I do not know how to access the current array element and pass it to substract function
lapply(a, substract)
Run Code Online (Sandbox Code Playgroud)

这里提到匿名函数也可以使用,但它对我没有用,我得到语法错误.事实上,它看起来就像语法糖一样.问题仍然存在,我在使用lapply函数时需要一些占位符或其他东西,所以我可以访问当前的list元素:

lapply(a, function([WHAT TO ADD HERE???],substract_me) substract([WHAT TO ADD HERE???],substract_me))
Run Code Online (Sandbox Code Playgroud)

可能是相关的,但我没有弄清楚过去的代码片段是如何工作的.

r

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

标签 统计

r ×3

apply ×1

dataframe ×1

lapply ×1

list ×1

names ×1