Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在R中的dataframe的选定列上操作,而不影响其他列_R - Fatal编程技术网

在R中的dataframe的选定列上操作,而不影响其他列

在R中的dataframe的选定列上操作,而不影响其他列,r,R,我想做的是获取一个数据帧,我们称它为x,并将函数y仅应用于部分列。我需要能够轻松地指定要对哪些列进行操作——希望通过将列号作为向量或列表传递 例如,我可能希望在第1、3、5和6列中添加10,但保留第2和第4列不变 我怀疑我需要使用apply函数-我不确定如何使用它的细节 这里的任何指导都将不胜感激 只需使用[只需使用[使用[set.seed(1) >df-df A B C D E F 1 1 2 8 2 4 9 2 2 3 9 1 6 1 3 3 4 5 5 7 5 4 4 6 4 9 2 0

我想做的是获取一个数据帧,我们称它为x,并将函数y仅应用于部分列。我需要能够轻松地指定要对哪些列进行操作——希望通过将列号作为向量或列表传递

例如,我可能希望在第1、3、5和6列中添加10,但保留第2和第4列不变

我怀疑我需要使用apply函数-我不确定如何使用它的细节

这里的任何指导都将不胜感激

只需使用
[只需使用
[使用
[set.seed(1)
>df-df
A B C D E F
1 1 2 8 2 4 9
2 2 3 9 1 6 1
3 3 4 5 5 7 5
4 4 6 4 9 2 0
5 5 1 0 4 9 8
>#在第1、3和5列中添加10
>df[,c(1,3,5)]df
A B C D E F
1 11 2 18 2 14 9
2 12 3 19 1 16 1
3 13 4 15 5 17 5
4 14 6 14 9 12 0
5 15 1 10 4 19 8
使用
[set.seed(1)
>df-df
A B C D E F
1 1 2 8 2 4 9
2 2 3 9 1 6 1
3 3 4 5 5 7 5
4 4 6 4 9 2 0
5 5 1 0 4 9 8
>#在第1、3和5列中添加10
>df[,c(1,3,5)]df
A B C D E F
1 11 2 18 2 14 9
2 12 3 19 1 16 1
3 13 4 15 5 17 5
4 14 6 14 9 12 0
5 15 1 10 4 19 8

好的,这很有意义。如果说我想找到一些列的平均值,以及其他列的中间值,但是想要这些平均值和中间值的输出向量,使得向量的第一个条目对应于数据帧的第一列,那该怎么办?更新你的问题,展示你想要的和期望的输出的示例。好的,t这是有道理的。如果说我想找到一些列的平均值,以及其他列的中间值,但是想得到这些平均值和中间值的输出向量,使得向量的第一个条目对应于数据帧的第一列,那该怎么办?更新你的问题,给出你想要的和预期输出的示例。
set.seed(123)
df <- data.frame(   V1 = sample(5),
            V2 = sample(5),
            V3 = sample(5),
            V4 = sample(5) )
  V1 V2 V3 V4
1  2  1  5  5
2  4  3  2  1
3  5  4  3  4
4  3  2  4  3
5  1  5  1  2

df[ , c(1,4) ]  <- df[ , c(1,4)] + 10

  V1 V2 V3 V4
1 12  1  5 15
2 14  3  2 11
3 15  4  3 14
4 13  2  4 13
5 11  5  1 12
> set.seed(1)
> df <- data.frame(A=1:5, B=sample(0:9, 5), C=sample(0:9, 5), 
+                  D=sample(0:9, 5), E=sample(0:9, 5), F=sample(0:9, 5))
> df
  A B C D E F
1 1 2 8 2 4 9
2 2 3 9 1 6 1
3 3 4 5 5 7 5
4 4 6 4 9 2 0
5 5 1 0 4 9 8
> # Adding 10 to columns 1,3 and 5
> df[, c(1,3,5)] <- df[, c(1,3,5)]+10
> df
   A B  C D  E F
1 11 2 18 2 14 9
2 12 3 19 1 16 1
3 13 4 15 5 17 5
4 14 6 14 9 12 0
5 15 1 10 4 19 8