使用提供的不同列名更改数据帧值R?
问题描述:
我有以下的数据帧:使用提供的不同列名更改数据帧值R?
Column1 Default_Val
1 A 2
2 B 2
3 C 2
4 D 2
5 E 2
...
colnames: "Column1" "Default_Val"
rownames: "1" "2" "3" "4" "5"
该数据帧是我的功能的一部分,这个功能可以根据一些if的更改默认值。
我想泛化赋值过程,因为我想支持此数据框的不同列名。
请指教如何更改默认值而不依赖列名?
这里是我做过什么至今:
df[Column1 == "A","Default_Val"]
[1] 2
df[Column1 == "A","Default_Val"] = 2
df[Column1 == "A","Default_Val"]
[1] 1
我想要的东西,像概括:
t <- colnames(df)
df[t[1] == "A", t[2]] = 7
出于某种原因,这是行不通的(每次出现这种情况时我喜欢Python的: ))。
请指教。
答
我认为这一定很简单。请检查这是否解决您的问题。
> df
Column1 Default_val
1 A 1
2 B 3
3 A 4
4 C 1
5 D 4
> df[2][df[1] == 'A'] = 3
> df
Column1 Default_val
1 A 3
2 B 3
3 A 3
4 C 1
5 D 4
+0
非常感谢!将尝试它! –
你试过'''colnames(df)''' – amrrs
当然,它不起作用。这是一个错字,我会编辑这个问题。 但是,如果你对我的问题有一个聪明的解决方案,那就太好了。在Python中它是小菜一碟,R一如既往地制造麻烦。 –
如果我理解正确,你想分配一个基于列索引而不是列名的值,对吧? – amrrs