I didn't have any cream cheese, so I strained some Greek yoghurt. (Put an old, clean pillowcase fabric square in a sieve — or you can use layers of muslin or cheesecloth — then put the yoghurt on the middle of the cloth and tie up the top. I used a rubber band. Then sit the sieve on a container in the fridge, to let the whey drain. Once it's been going a few hours and got quite firm, you can squeeze a bit more whey out. Mine lost just over half its weight in whey and turned into a slightly crumbly solid ball.)
My recipe says 100g of softened butter, 200g cream cheese and 80g icing sugar. (I had slightly more than 200g of the strained yoghurt, so I adjusted the quantities, and used powdered erythritol instead of sugar.) You whip the butter, preferably with something electrical rather than your muscles, then add the cream cheese/solid strained yoghurt, and sieve in the powdered sweetener/sugar. And you really do have to sieve it or you'll get lumps that are a right bitch to get out. Mix it all together well and there you go.
I did find with the strained yoghurt it came out a little runnier than I'd hoped, as you can see from the picture, so I'm keeping it in the fridge. It wasn't exactly fluid, but was definitely squidgier than the cream cheese version. But I did quite like the visual effect of the frosting running down the cake. And it tastes good, and seems to go quite well with the carrot cake.
(It was a bit of an experiment cake, as I didn't have walnuts or pecans so I used chopped almonds, and didn't have enough almond flour so used more gluten-free white flour, and I have some self-raising to use up so used that instead of the plain + baking powder the recipe specified, and used a mix of erythritol and sucralose instead of pure erythritol, so it's amazing it worked
)
Edit: I do want to just mention, having posted a photo showing a third of the cake missing, that it wasn't just me having cake for breakfast 

